今天在php下查询mysql,居然出现了ldquo;general error: 2050rdquo;的错误,后来ray给了链接,果然问题就解决了。文章已经说得
今天在php下查询mysql,居然出现了“general error: 2050”的错误,后来ray给了链接,果然问题就解决了。
文章已经说得很清楚了,下面直接引用过来:
------------------------------------------
我把php升级到了5.2.5版本以后,,以前写的pdo程序总是报错sqlstate[hy000]: general error: 2053 ,我查了很久才找到问题的解决办法。这样的问题只会发生在两条sql连续请求的时候,如下面的例子:
$s = $db->query(select * from test order by poledrugie;); var_dump($s->fetchall()); $s = $db->query(select * from test order by poletrzecie;); var_dump($s->fetchall());
这样就会报错的。两种修改方法:
1.将第二个sql的句柄换成$s1.
$s = $db->query(select * from test order by poledrugie;); var_dump($s->fetchall()); $s1 = $db->query(select * from test order by poletrzecie;); var_dump($s1->fetchall());
2.在第二个sqk前,将$s清空。
$s = $db->query(select * from test order by poledrugie;); var_dump($s->fetchall()); $s = ''; $s = $db->query(select * from test order by poletrzecie;); var_dump($s->fetchall());
其实可以得出一个结论,如果两个pdo请求赋值给同一个句柄,那么第二个句柄不会被覆盖掉。所以必须我们手动覆盖一次。