我知道这个标题上还有其他一些问题,但是它们似乎是特定于案例的,或者我无法绕过它,但我在这段代码上遇到了错误,我不能找出原因。
$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
教程中尝试了一个示例,我得到了相同类型的错误。有什么东西要我宣布或者我要留下什么东西吗?
答案 0 :(得分:8)
当使用与查询结果集相关的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);
然后,当查询/查询中出现错误时,将抛出异常。