php - 调用未定义的方法 PDO::fetch()

标签 php mysql

<分区>

我知道这里还有一些关于这个标题的其他问题,但它们似乎是特定于案例的,或者我只是无法理解它,但我在这段代码中遇到了这个错误,我不能找出原因。

$db = new PDO($dsn, $username, $password);
$query = "Select * FROM book INNER JOIN course
          ON book.course = course.courseID
          ORDER BY courseTitle";

//query result
$books = array();
$sth = $db->query($query);
while( $row = $db->fetch(PDO::FETCH_ASSOC) ) {
    $books[] = $row; // appends each row to the array
}

我想也许我的查询有误,所以我尝试了 PDO 教程中的示例,但我遇到了相同类型的错误。有什么我必须申报的或我遗漏了什么吗?

最佳答案

当使用与查询结果集上的查询相关的 PDO 函数时,您应该使用 $sth 而不是 $db。

$db = new PDO($dsn, $username, $password);
$query = "Select * FROM book INNER JOIN course
ON book.course = course.courseID
ORDER BY courseTitle";

//query result
$books = array();
$sth = $db->query($query);
while( $row = $sth->fetch(PDO::FETCH_ASSOC) ) {
  $books[] = $row; // appends each row to the array
}

调试PDO时。 在创建 PDO 对象后添加此行:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

然后当查询/查询有错误时会抛出异常。

关于php - 调用未定义的方法 PDO::fetch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16313353/

相关文章:

php 数组中的下拉列表未填充

mysql - sql : regarding Update statement

mysql - 过滤掉多个评分中的第一个评分

python - 无法使用 Django ORM 关闭脚本中的自动提交

php - 如何存储两个客户相关?

php - 如何保护 PHP 表单?

php - 使用 file_get_contents 时如何保持文本布局?

javascript - 如何检测用户的时区?

mysql - 使用 Python 创建 MySQL 表时出错

c# - EF v1 的加载行为?