今天在php下查詢mysql,居然出現(xiàn)了“General error: 2050”的錯誤,后來ray給了鏈接,果然問題就解決了。
文章已經(jīng)說得很清楚了,下面直接引用過來:
------------------------------------------
我把PHP升級到了5.2.5版本以后,以前寫的PDO程序總是報錯SQLSTATE[HY000]: General error: 2053 ,我查了很久才找到問題的解決辦法。 這樣的問題只會發(fā)生在兩條SQL連續(xù)請求的時候,如下面的例子:
-
$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請求賦值給同一個句柄,那么第二個句柄不會被覆蓋掉。所以必須我們手動覆蓋一次。 本文出自:億恩科技【www.allwellnessguide.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|