什么';这个php-pdo代码有问题


What's wrong with this php pdo code?

foreach不会回声任何东西,有人知道它出了什么问题吗?

注意:$checks是复选框的值。

<?php
    $hostname = 'localhost';
    $username = 'root';
    $password = '';
    $database = 'foo';
    try{
        $db = new PDO("mysql:host=$hostname;dbname=$database",$username,$password);
        $checks = $_POST['checks'];
        $post = "SELECT * FROM articles WHERE title= ' ". $checks ." '";
        foreach($db->query($post) as $row){
            echo $row['title'] . '' . $row['body'];
        }
    }catch(PDOException $e){
        echo 'CONNECTION UNSUCCESFUL!';
    }
?>

标题周围有多余的间距吗?所以,在你的数据库中,带有额外空格的标题永远不会匹配。

WHERE title= ' ". $checks ." '";

更改为

WHERE title= '". $checks ."'";

然后再试一次。

$post = "SELECT * FROM articles WHERE title IN (' ". implode("','", $checks) ." ') ";

如果$checks是数组,那么您应该像这样使用