pdo(php5.2.8) 连续 query 后, fetch 失败的 bug .
2014-11-06 02:08
375 查看
1、注意红色框框部分,使用的是同一个数据库的连接对象 $pdo
2、第一次使用以后关闭了cursor,$stmt->closeCursor();
3、第二次 $pdo 查询的时候,采用了 $stmt->fetch() 的方式取数据 (通过 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 快速 dump 数据) $val 的值是空的,也就是说 while 这个 fetch 失败了。通过设置 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 发现抛出了 'SQLSTATE[HY000]: General error: 2050 ' 的异常。
解决办法是在第一次查询 $stmt->closeCursor(); 之后,对这个 $stmt 进行 null 销毁,即 $stmt = null; 加在 195 行后面, 或者换一个新的变量(参考这个问题 http://amiteshkumar.wordpress.com/2010/08/24/php-pdo-error-fix-sqlstatehy000-general-error-2050/ )。
通过一些资料查找,这个应该是很久以前的历史问题了, 不过觉得很怪异。
参考资料链接地址:http://www.justskins.com/forums/35793-com-general-error-25815.html
相关文章推荐
- PHP错误抑制符(@)导致引用传参失败Bug的分析
- PHP PDO的简单使用(query(),exec(),prepare(),Transaction,行锁)
- [置顶] 拿帝吧检测bug の phpQuery 捉虫记
- mysql php pdo query print_r global echo
- PHP PDO::execute()执行insert into失败返回错误无错误消息的解决
- PHP中PDO方法fetch参数问题
- BUG排查:PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1040] Too ma
- PHP中mysql_query()、mysql_num_rows()、mysql_fetch_assoc()等的使用
- win7 64位下wampserver打开php扩展php_oci8和php_pdo_oci失败的问题
- PHP+MYSQL中使用PDO获取结果集的fetch方法
- php当中多次使用PDO::query ( string $statement ) 报non-object错误的解决方法
- PHP紧急发布5.2.8版本 魔术函数出现严重BUG
- php 加载 php 加载php_mysql.dll和php_pdo_mysql.dll 失败
- Get Last Executed Query in PHP PDO
- PHP PDO fetch 模式各种参数的输出结果一览
- PHP中PDO数据访问对象处理LIMIT子句的一处BUG
- 使用win8.1 x64 office2010 php 使用 pdo_odbc 连接excel失败的问题
- PHP中PDO对像及PDOStatement::fetch()的用法数据库查询,结果输出处理
- PHP PDO的FETCH_NUM、FETCH_BOTH、FETCH_ASSOC
- PHP+MYSQL中使用PDO的query方法