PDO准备的声明导致致命错误

时间:2018-03-29 19:00:34

标签: php mysql

我检查了这个,我无法看到它的问题,虽然如下所示,我收到一个错误。我已经var_dump所有内容以确保值存在。

有人可以帮忙吗?

错误:

  

致命错误:未捕获PDOException:SQLSTATE [42S22]:找不到列:1054第313行'where子句'中的未知列'$ word'

1 个答案:

答案 0 :(得分:2)

您滥用预先准备好的陈述。您应该参数化值,以便驱动程序相应地处理数据。所以改变:

$dbQuery = $conn->prepare("SELECT * FROM Meals where Category='Breakfast' AND Keyword=$Keyword");
$dbQuery->execute(); 

为:

$dbQuery = $conn->prepare("SELECT * FROM Meals where Category='Breakfast' AND Keyword=:Keyword");
$dbParams = array(':Keyword'=> $Keyword);
$dbQuery->execute($dbParams);