PDO连续query()失败问题

Posted 小昌君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PDO连续query()失败问题相关的知识,希望对你有一定的参考价值。

设置了非缓冲查询(PDO::mysql_ATTR_USE_BUFFERED_QUERY)以后,连续query会导致下一次结果为false

$conn = "mysql:host=127.0.0.1;dbname=test_lkc";
$db = new PDO($conn, ‘root‘, ‘root‘);
$db->query("set names utf8");
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$delSql = "SELECT * FROM test_table";
$i=1;
while ($i < 3){
    $i++;
    $res = $db->query($delSql);
    var_dump($res);
}

解决办法

1、每次query的结果用完以后,unset()或者重新赋值

2、query以后的结果我们一般会用fetch()函数去获取结果,如果用while($res->fetch())不会出现上诉问题

以上是关于PDO连续query()失败问题的主要内容,如果未能解决你的问题,请参考以下文章

进行数据库操作的时候,操作错误或者失败,但是不报错

为啥mysql PDO不会在失败时抛出错误[重复]

query返回值

PDO 事务是不是涵盖 PDO::query()?

PDO->query() 和 PDO->exec() 的区别

PHP PDO获取结果集