我在从数据库中检索数据时遇到了问题。所以我有一个有搜索框的页面。用户键入项目编号并重定向到单个项目页面,并使用表单传输该编号。然后脚本选择该数字并仅显示该数字等于结果数的结果。 问题:如果该数字仅由数字组成,则一切正常。如果我们添加字母,它将转到“PHP致命错误:在非对象上调用成员函数execute()”。在数据库中,我将其设置为TEXT,而不是NUMBER。
以下是单个项目页面上的代码:
首先它从顶部URL获取该数字(part.php?partnumber = 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);
}
答案 0 :(得分:-1)
如果MySQL表中的partNumber字段是字符串/ text / varchar数据类型,那么在查询字符串中,您应该编写partNumber = '$partNumber'
而不是编写partNumber = $partNumber
。