PHP:在布尔错误上调用成员函数execute()

时间:2017-11-15 11:56:51

标签: php mysql

这是我的代码:

    public function getTypeByID($typeId) {
    $stmt = $this->conn->prepare("SELECT type_id, description FROM type WHERE type_id = ? ");
    $stmt->bind_param("i", $typeId);
    if ($stmt->execute()) {
        $stmt->bind_result($id_type, $description);
        $stmt->fetch();
        $type = array();
        $type["type_id"] = $id_type;
        $type["description"] = $description;
        $stmt->close();
        return $type;
    } else {
        return NULL;
    }
}

我收到了这个错误:

  

致命错误:在布尔值上调用成员函数execute()。

我检查了所有谈论它的主题,但对我没什么用。

我尝试在Mysql(PhpMyAdmin)上执行查询,但它确实有效。

我的类型表结构:

enter image description here

任何想法。

3 个答案:

答案 0 :(得分:1)

您的sql确实为表命名,但是我只是有一个相同错误的实例,使我进入了此页面。

在SQL中调用“数据库名称”或不存在的表而不是“表名称”也会产生此错误。

答案 1 :(得分:0)

也许是因为 type 是MySQL中的保留字。 请参阅:https://dev.mysql.com/doc/refman/5.5/en/keywords.html 尝试将表名更改为smth else。

答案 2 :(得分:0)

type是MySQL的保留字。
要解决此问题,您需要在语句中添加单引号。

示例

SELECT 'type_id', 'description' FROM 'type' WHERE 'type_id' .........