2017-06-12 77 views
0

这是我的PHP代码PDOPHP PDO预处理语句与凡在第

$stmt = $conn->prepare("SELECT * FROM TABLE 
WHERE tag1 IN ('$tag1','$tag2') $andor tag2 IN ('$tag1','$tag2 ') ORDER BY $sort DESC LIMIT $limit OFFSET $start"); 
    // Then fire it up 
    $stmt->execute(); 
    // Pick up the result as an array 
    $result = $stmt->fetchAll(); 
    // Now you run through this array in many ways, for example 

我试图把它转换成准备好的语句,但我真的不明白,它是如何工作的。我尝试了很多谷歌的东西,但没有任何工作。

+0

你可以从[准备的语句是什么](http://php.net/manual/it/pdo.prepared-statements.php)开始。 – Federkun

+0

'IN('$ tag1','$ tag2')$ andor''$ andor'的值是多少?这看起来不像一个正确的sql –

+0

是'$ andor'列? –

回答

0
$stmt = $conn->prepare("SELECT * FROM table WHERE tag1=? OR tag1=? AND tag2=? OR tag2=? ORDER BY id DESC LIMIT 15,10"); 

$stmt->execute(array($tag1, $tag2, $tag1, $tag2)); 

$result = $stmt->fetch(PDO::FETCH_ASSOC); 

我希望它能正常工作。

+0

致命错误:Uncaught PDOException:SQLSTATE [42S22]:未找到列:1054 C:\ xampp \ htdocs \ website \ index中'where子句'中的未知列'City' .php:189 Stack trace:#0 C:\ xampp \ htdocs \ website \ index.php(189):PDOStatement-> execute(Array)#1 {main}抛出C:\ xampp \ htdocs \ website \ index。在线189上的php – Josh

+0

@Josh可以请你参加我上面的评论 –