1.在學習php時用PDO模式串連資料庫,查詢資料時,在調用fetch方法時出現錯誤:Fatal error: Call to a member function fetch() on a non-object
2.代碼
//PDO串連資料庫方式 try{ $db_conn = new PDO('mysql:host = localhost;dbname = test','root','123456'); echo "串連成功!"; } catch(PDOException $e){ echo "Could not connect to datebase"; }//從表中選取資料 $stmt = $db_conn->query('SELECT * FROM user'); var_dump($stmt);//顯示結果 while ($row = $stmt->fetch()) { echo $row['name'].$row['number'].$row['class']; }
3.錯誤結果
4.資料庫
回複內容:
1.在學習php時用PDO模式串連資料庫,查詢資料時,在調用fetch方法時出現錯誤:Fatal error: Call to a member function fetch() on a non-object
2.代碼
//PDO串連資料庫方式 try{ $db_conn = new PDO('mysql:host = localhost;dbname = test','root','123456'); echo "串連成功!"; } catch(PDOException $e){ echo "Could not connect to datebase"; }//從表中選取資料 $stmt = $db_conn->query('SELECT * FROM user'); var_dump($stmt);//顯示結果 while ($row = $stmt->fetch()) { echo $row['name'].$row['number'].$row['class']; }
3.錯誤結果
4.資料庫
你的sql查詢出錯了,$stmt都是false了,還怎麼執行fetch呀
foreach ($db_conn->query('SELECT * FROM user') as $row) { print $row['name'] . "\t"; print $row['age'] . "\t"; }
參考手冊。問題一般都可以解決。:)
query執行SQL後可以直接用fetchAll擷取結果集,這樣就不需要while迴圈逐條fetch了:
query($sql)->fetchAll(PDO::FETCH_ASSOC) );
可以在phpmyadmin中把你要查詢的sql語句運行一下,
SELECT * FROM user,可能它就是錯的。
我一直是這樣查錯的,希望能幫到你。