stmt->执行无法正常工作


stmt->execute not working properly

我正在尝试从下面的代码段中获取结果,但是没有返回任何结果。 $stmt->execute(array(id))未按预期运行。 它似乎在其他代码段中工作正常,我已经比较了它们,没有看到任何差异。

$stmt = $mysql->dbh->prepare("SELECT * FROM keys WHERE type = ?");
if($stmt->execute(array($id))) {
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo $row["price"];
    }
}

谢谢

keys是一个MySQL保留字

  • http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

要么用反引号包装它,要么使用它的其他名称。
只是不要将其重命名为 key .这也是一个MySQL保留字。

SELECT * FROM `keys`

使用错误异常会抛出错误。

打开

连接后立即添加setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)(如果尚未添加

)。

咨询:http://php.net/manual/en/pdo.error-handling.php

  • 假设您已经建立了成功的数据库连接。