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