PHP - 使用MySQL检索数据

时间:2014-07-23 21:38:03

标签: php mysql

我在从数据库中检索数据时遇到了问题。所以我有一个有搜索框的页面。用户键入项目编号并重定向到单个项目页面,并使用表单传输该编号。然后脚本选择该数字并仅显示该数字等于结果数的结果。 问题:如果该数字仅由数字组成,则一切正常。如果我们添加字母,它将转到“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);      
    }

1 个答案:

答案 0 :(得分:-1)

如果MySQL表中的partNumber字段是字符串/ text / varchar数据类型,那么在查询字符串中,您应该编写partNumber = '$partNumber'而不是编写partNumber = $partNumber