我正在尝试学习使用 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'];
}
但我收到此错误:
致命错误:调用成员函数 setFetchMode()
非对象在
/home/owencont/public_html/owenstest.com/ratemystudents/index.php
6号线
如果我去掉 WHERE 语句,它就可以正常工作。如何根据值是否与变量匹配来选择行?
Thanks,
Owen
这可能是一个 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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)