0
我有一个非常简单的搜索表单,它从GET_开始,然后将其合并到SQL查询中。我想在paramterized查询中使用此字符串从GET,比如:带引号和参数化SQL查询的问题
$searchString = '%' . $searchString . '%';
$recordsQuery = "SELECT username, firstname, lastname FROM $table WHERE lastname = $searchString" . $max;
if ($getRecords = $con->prepare($recordsQuery)) {
$getRecords->bind_param("s", $searchString);
$getRecords->execute();
$getRecords->bind_result($username, $firstname, $lastname);
$rows = array();
while ($getRecords->fetch()) {
$row = array(
'username' => $username,
'firstname' => $firstname,
'lastname' => $lastname,
);
$rows[] = $row;
}
return $rows;
}
然而,这导致了“where子句”错误
未知柱“术语”。
我认为这是因为我的术语没有引用,但是向变量添加转义引号什么也没做。
任何语法错误或类似的问题都是提出问题的修改产物,并且不存在于我的实践代码中。
OK,我解决了这个问题,通过改变以下行:
$searchstring = "'" . $searchstring . "'";
$recordsQuery = "SELECT username, firstname, lastname FROM $table WHERE lastname = $searchString" . $max;
我相信这种做法可能是不好的,因为它不是paramterized ......,但我无法得到它的工作任何其他方式。
添加引号什么都没有改变。 – 2009-10-22 14:40:01
准确的$ max var是什么? – Arkh 2009-10-22 14:41:00
只需要一个int,就可以查看要显示的记录数量。 – 2009-10-22 14:41:42