PDO错误调试

Posted yolo_bean

tags:

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

在服务器上用PDO操作数据库,怎么都获取不到数据,query语句返回null,但是同样的代码在本地运行无误。SO,开始找bug。

<?php
 $host=‘localhost‘;
        $dbname=‘my‘;
        $user="root";
        $password="root";
        $dsn="mysql:host=$host;dbname=$dbname";
        try{
             $pdo=new PDO($dsn,$user,$password,array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET NAMES ‘utf8‘;"));
        }catch(PDOException $e){
            die("错误:".$e->getMessage());
        }

        // $sql="select title,descript,picUrl,url from aa";
        $sql="select * from aa";
        $res=$pdo->query($sql);
        if($res==null){
        	show($pdo->errorInfo()); 
        }

  输出:

Array
(
    [0] => 42S02
    [1] => 1146
    [2] => Table ‘my.aa‘ doesn‘t exist
)

  够傻吧,我只在本地数据库上建表了,完全忘了和服务器数据库不是一回事。

总结两个知识点:

1、$res=$pdo->query($sql); 成功的话返回一个PDOStatement对象,失败返回空。

2、$pdo->errorInfo()获取错误信息。输出一个数组。

3、调试过程中遇到了这个错误提示:Notice: Array to string conversion in /var/www/html/wx/test.php on line 17  
  原因是$pdo->errorInfo()返回的是一个数组,而我试图用echo输出结果,改用print_r()或var_dump()打印数组就OK了。

 

以上是关于PDO错误调试的主要内容,如果未能解决你的问题,请参考以下文章

运行/调试你的PHP代码

PHP代码-psysh调试代码片段工具

php PHP:PDO片段

php PHP:PDO片段

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

方便调试使用的代码片段