检查数据库连接参考:http://www.php.net/manual/en/pdo.error-handling.php

解决方案 »

  1.   

    出错原因是,select中没有oauth_token字段。$sql = "SELECT client_id, expires, scope FROM tokens WHERE oauth_token = :oauth_token";
    $stmt = $this->db->prepare($sql);
    $stmt->bindParam(":oauth_token", $oauth_token, PDO::PARAM_STR);$sql = "SELECT code, client_id, redirect_uri, expires, scope FROM auth_codes WHERE code = :code";
    $stmt = $this->db->prepare($sql);
    $stmt->bindParam(":code", $code, PDO::PARAM_STR);
      

  2.   

    打开错误提示的,其它错误都能显示,到这里的时候不显示错误,直接就服务器断开连接了,跟踪调试了下,发现程序是有运行的,但是到$stmt->execute()这一步就挂了。
      

  3.   


    这个是查询条件里的参数,跟Select里的字段有什么关系????
      

  4.   

    补充:直接拼接SQL,然后用$this->db->query也不行。
    很奇怪的问题,后来全部改成Mysql直接读写了,不通过PDO了,但是这个问题没找到原因,心里很不舒服。
      

  5.   

    你总是得贴出错误信息的!
    另外,如果你的 php 版本低于 5.3 的话,建议还是不要用 PDO(总是有些莫名其妙的错误的)
      

  6.   

    print_r($this->db->errorInfo());
      

  7.   

    SELECT client_id, expires, scope FROM tokens WHERE oauth_token = :oauth_token直接拿sql放到mysql编辑器执行试试。
      

  8.   

    调试的最基本方法,我早试过了,SQL查询语句没有一点问题,要不然在我的电脑上就不能运行了,只是移到阿里云服务器上后这里就挂了,换成Mysql直接查询一切正常。
      

  9.   

    阿里云服务器 支持 PDO 吗?
    请找管理员核实一下
      

  10.   

    这不是查看phpinfo()就可以看得到?
      

  11.   

    好!
    1、pdo 出错,mysql 不出错
    2、一处正常,一处不正常显然问题出在不正常的程序中
    mysql 没有 prepare 和 bindParam
    你说错误应在哪里?
      

  12.   

    检查代码里有没有$this->db=NULL;
    是不是清空了?
      

  13.   

    你有客户端吧,客户端总会给你打印出一些东西的,例如你访问了你的a.php 这个是操作pdo的,你在服务器上的apache/nginx查看不到所有的log?如果看不到那你就看看客户端上服务器response的http code是什么 message是什么,总有办法的。PDO 我碰见过如果用长连接 会导致一些网页直接挂掉。
      

  14.   

    我今天也遇到了同样的问题。。PDO执行select查询导致apache直接断开,查询了PHP log和apche log都没有错误反馈。。但是执行UPDATE/INSERT没有问题,再测试发现执行select a from table可以,但是select a,b from table就立马挂掉,不知道什么原因。
      

  15.   

    我知道什么原因了,我去stackoverflow查了下,发觉时我的WAMP版本问题,我的PHP是5.2.x的貌似支持不是太好,5.3.x没问题