gpt4 book ai didi

php - PDO 数据库访问 WHERE title = $title

转载 作者:太空宇宙 更新时间:2023-11-03 11:15:39 26 4
gpt4 key购买 nike

我正在尝试学习使用 PDO 而不是 MySQLi 进行数据库访问,但我在从数据库中选择数据时遇到了问题。我想使用:

$STH = $DBH->query('SELECT * FROM ratings WHERE title=$title ORDER BY date ASC');
$STH->setFetchMode(PDO::FETCH_ASSOC);

while($row = $STH->fetch()) {
echo $row['title'];
}

但是我收到了这个错误:

Fatal error: Call to a member function setFetchMode() on a non-object in /home/owencont/public_html/owenstest.com/ratemystudents/index.php on line 6

如果我去掉 WHERE 语句,它就可以正常工作。如何根据值是否与变量匹配来选择行?

谢谢,

欧文

最佳答案

这可能是 SQL 语法错误,因为您忘记引用 $title。它最终在查询中作为裸词(甚至没有插入为字符串),导致错误。并且您的 PDO 连接未配置为报告错误。在 ->query() 之前的参数上使用 ->quote():

$title = $DBH->quote($title);
$STH = $DBH->query("SELECT * FROM ratings WHERE title=$title ");

或者更好的是,使用参数化 SQL:

$STH = $DBH->prepare("SELECT * FROM ratings WHERE title=? ");
$STH->execute(array($title));

关于php - PDO 数据库访问 WHERE title = $title,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5223304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com