我用下面的(或類似)的代碼在數百頁的我已經建立:雖然在MySQL的通話循環拋出未知PDO例外「常規錯誤」
$stmt = $db->prepare("SELECT * FROM table");
$stmt->execute();
while($row = $stmt->fetch()) {
$id = $row['id'];
$name = $row['name'];
do something with data returned...
$id = NULL;
$name = NULL;
}
出nowwhere的,我開始接受了以下幾頁錯誤:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error' in C:....page.php:28 Stack trace: #0 C:..page.php(28): PDOStatement->fetch() #1 {main} thrown
第一個循環將運行(沒有問題),但在第一個循環後發生錯誤。錯誤代碼(第28行)引用行:
while($row = $stmt->fetch()) {
我從來沒有見過這個之前。作爲測試,我修改了代碼以存儲所有返回的結果,如下所示:
$stmt = $db->prepare("SELECT * FROM table");
$stmt->execute();
$rows = $stmt->fetchALL();
foreach($rows as $row) {
$id = $row['id'];
$name = $row['name'];
do something with data returned...
$id = NULL;
$name = NULL;
}
和系統工作。任何想法爲什麼?
什麼在你的「做某事」部分? –
......哪一條是第28行? – feeela
@feela - 第28行是'while'循環 – JM4