PDO :: query()期望参数1为字符串,给定对象警告

时间:2016-03-27 00:17:07

标签: php html mysql pdo

我对PDO有一点问题。 我在2分钟前发布了另一个问题,答案很快,但现在又出现了另一个错误。

以下是代码:

                $hostname='localhost';
        $username='Elmad2';
        $password='*******';
        try {
            $dbh = new PDO("mysql:host=$hostname;dbname=portals",$username,$password);
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
            $stmt = $dbh->prepare('SELECT * FROM docenten');
            $stmt->setFetchMode(PDO::FETCH_ASSOC);
            $stmt->execute();
            $Result = $stmt->fetchAll();

第81行>> if($ dbh-> query($ stmt)){

                foreach ($Result as $row) {


                    echo '<div class="item"><a href="teachers/item.php?id=' . $row[id] . '">
        <h1 class="title">' . $row[title]. '</h1></a>
        <h3 class="author">Geplaatst door: ' . $row[info_bys] . '</h3><span class="description">' . $row[info_shorts] . '</span><br><img src="../' . $row[filepath] . '" class="item-image"><br>
        <a href="teachers/item.php?id='.$row[id].'"><button type="button" class="read_more btn btn-primary">Lees meer</button></a>
    </div>';



                }
            }
            else{
                echo 'error';
            }

$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}

这是错误:

  

警告:PDO :: query()要求参数1为字符串,对象在第81行&gt; /home/ubuntu/workspace/portals/teachers.php中给出

我希望有人可以帮助我,

感谢。

2 个答案:

答案 0 :(得分:1)

您无需致电PDO::query()。对于准备好的陈述,您致电PDO::prepare(),然后PDOStatement::execute()执行查询,您可以使用PDOStatement::fetch*检索结果。

PDO::query()仅用于动态SQL;它以 string SQL查询语句为参数。 SELECT 声明,&amp; c。

答案 1 :(得分:0)

@ rizier123回答了我的问题。

我只需要删除if语句并在行数据中添加引号。

谢谢@ rizier123