2016-09-25 19 views
1

我有一些代碼,其中變量$查詢應該持有不同PDOStatement對象的對象,一個被另一個取代:意外PDO「常規錯誤」 2050年根據配置

$query = $conn->prepare("select * from ... "); 
$query->execute(); 
while ($tmp=$query->fetch(PDO::FETCH_ASSOC)) { 
    ...; 
} 

//unset($query); 
$query = $conn->query("select * from ... "); 
while ($tmp=$query->fetch(PDO::FETCH_ASSOC)) { 
    ....; 
} 

有了這樣的代碼,我得到「SQLSTATE [HY000 ]:一般錯誤:2050「來自PDO上最後一次提取的行。但是,如果我取消註釋「未設置」的行 - 它開始正常工作。

任何想法是什麼?

PS不使用未設置的,它也可以與PDO :: ATTR_EMULATE_PREPARES =真

UPD 這裏是從MySQL網站錯誤代碼說明:

錯誤:2050(CR_FETCH_CANCELED) 消息:行檢索是通過mysql_stmt_close取消()調用

+2

它可能是一個錯字,但'而($ TMP = $查詢 - >取(PDO :: FETCH_ASSOC){'缺少收盤')' – RamRaider

+0

是的,一個錯字,謝謝。剛剛糾正。 – user3714601

+0

真的很好奇downvoting的原因 – user3714601

回答