当前位置:  开发笔记 > 编程语言 > 正文

PDO查询问题

如何解决《PDO查询问题》经验,为你挑选了1个好方法。

我正在将旧的mysql_*函数中的一些代码更新为PDO.它连接没有问题,运行查询没有问题,但结果集为空.PDO :: query()应该返回一个PDOStatement对象,但我得到了回报.没有报告错误.

这是我的代码:

try
{
    $DB = new PDO("mysql:host=localhost;dbname=dbname", "user", "pass");
    $stmt = $DB->prepare("SELECT * FROM report_clientinfo");
    $stmt->execute();
}catch(PDOException $e)
{
    echo $e->getMessage() . "\n";
}


echo gettype($stmt) . "\n";
if ($stmt) echo "true\n";
else echo "false\n";

$resultset = $stmt->fetchAll();

if(empty($resultset))
{
    exit("ERROR: getClientInfo query failed.");
}

$DB = null;

print_r($resultset);

我看到的输出是:

object true ERROR:getClientInfo查询失败.

任何想法为什么它没有返回任何结果?



1> Bill Karwin..:
object  
true  
ERROR: getClientInfo query failed.

它看起来像你的PDOStatement $stmt变量实际上被报告为一个对象,而不是" true".然后代码true在看到$stmt非空时打印" " ,因为它是一个对象.

我建议您检查返回值$stmt->execute().您可能有SQL错误.例如,如果拼写错误的表名,或者dbname您连接到的数据库" " 中没有该表,或者您登录的用户没有查询该表的权限.

还要检查$stmt->errorInfo()以获取有关发生的任何错误的更多详细信息.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有