Home >Backend Development >PHP Tutorial >pdo方式连接数据库 查询数据并调用fetch方法时出错

pdo方式连接数据库 查询数据并调用fetch方法时出错

WBOY
WBOYOriginal
2016-06-06 20:15:441306browse

1.在学习php时用PDO模式连接数据库,查询数据时,在调用fetch方法时出现错误:Fatal error: Call to a member function fetch() on a non-object
2.代码

<code>//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'];
     }
</code>

3.错误结果
pdo方式连接数据库 查询数据并调用fetch方法时出错

4.数据库
pdo方式连接数据库 查询数据并调用fetch方法时出错

回复内容:

1.在学习php时用PDO模式连接数据库,查询数据时,在调用fetch方法时出现错误:Fatal error: Call to a member function fetch() on a non-object
2.代码

<code>//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'];
     }
</code>

3.错误结果
pdo方式连接数据库 查询数据并调用fetch方法时出错

4.数据库
pdo方式连接数据库 查询数据并调用fetch方法时出错

你的sql查询出错了,$stmt都是false了,还怎么执行fetch呀

<code>foreach ($db_conn->query('SELECT * FROM user') as $row) {
        print $row['name'] . "\t";
        print $row['age'] . "\t";
    }</code>

参考手册。问题一般都可以解决。:)

query执行SQL后可以直接用fetchAll获取结果集,这样就不需要while循环逐条fetch了:

<code><?php $db = new PDO();
$sql = 'SELECT * FROM user';
var_export( $db->query($sql)->fetchAll(PDO::FETCH_ASSOC) );</code>

可以在phpmyadmin中把你要查询的sql语句运行一下,
SELECT * FROM user,可能它就是错的。
我一直是这样查错的,希望能帮到你。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn