码迷,mamicode.com
首页 > 其他好文 > 详细

PDO错误调试

时间:2017-11-06 15:01:11      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:title   信息   stat   name   not   exce   mysq   sql   提示   

在服务器上用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错误调试

标签:title   信息   stat   name   not   exce   mysq   sql   提示   

原文地址:http://www.cnblogs.com/yolo-bean/p/7792723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!