我從數據庫檢索數據時遇到了問題。所以我有一個有搜索框的頁面。用戶鍵入商品編號,然後重定向到單個商品頁面,並使用表單轉移該編號。然後腳本選擇該數字,只顯示結果數字等於結果數字的結果。 問題:如果該號碼只包含數字,則一切正常。如果我們添加字母它會發送到「PHP致命錯誤:調用一個非對象的成員函數execute()」。在數據庫中,我將它設置爲TEXT,而不是NUMBER。PHP - 使用MySQL檢索數據
這裏是一個單一商品頁面的代碼:
所以首先它得到這個數字從頂部URL(part.php部分號碼= WB20K10023 +?):
$item_number = $_GET['item_number'];
$allItems = fetchAllItems($item_number);
然後運行這個功能:
function fetchAllItems($item_number) {
global $mysqli,$db_table_prefix;
$stmt = $mysqli->prepare("SELECT
*
FROM ".$db_table_prefix."items
WHERE
item_number = $item_number
LIMIT 1
");
$stmt->execute(); // <- This line shows in an error_log
$stmt->bind_result($id);
while ($stmt->fetch()){
$row[] = array('id' => $id);
}
$stmt->close();
return ($row);
}
請注意,沒有ORDER BY的LIMIT是非常沒有意義的。除此之外,你只是缺少一對引號 – Strawberry
'partNumber ='$ partNumber''。字符串需要用引號引起來。既然你正在使用'mysqli'和'prepare()',你應該使用佔位符'partNumber =?'和'$ stmt-> bind_param('s',$ partNumber);'。 – Sean
謝謝,修正了它。 – Art