1.在學(xué)習(xí)php時(shí)用PDO模式連接數(shù)據(jù)庫(kù),查詢數(shù)據(jù)時(shí),在調(diào)用fetch方法時(shí)出現(xiàn)錯(cuò)誤:Fatal error: Call to a member function fetch() on a non-object
2.代碼
//PDO連接數(shù)據(jù)庫(kù)方式
try{
$db_conn = new PDO('mysql:host = localhost;dbname = test','root','123456');
echo "連接成功!";
}
catch(PDOException $e){
echo "Could not connect to datebase";
}
//從表中選取數(shù)據(jù)
$stmt = $db_conn->query('SELECT * FROM user');
var_dump($stmt);
//顯示結(jié)果
while ($row = $stmt->fetch()) {
echo $row['name'].$row['number'].$row['class'];
}
3.錯(cuò)誤結(jié)果
4.數(shù)據(jù)庫(kù)
光陰似箭催人老,日月如移越少年。
foreach ($db_conn->query('SELECT * FROM user') as $row) {
print $row['name'] . "\t";
print $row['age'] . "\t";
}
參考手冊(cè)。問題一般都可以解決。:)
query執(zhí)行SQL后可以直接用fetchAll獲取結(jié)果集,這樣就不需要while循環(huán)逐條fetch了:
<?php
$db = new PDO();
$sql = 'SELECT * FROM user';
var_export( $db->query($sql)->fetchAll(PDO::FETCH_ASSOC) );
可以在phpmyadmin中把你要查詢的sql語句運(yùn)行一下,
SELECT * FROM user,可能它就是錯(cuò)的。
我一直是這樣查錯(cuò)的,希望能幫到你。