我正在使用PDO運行多個查詢。如果第二個查詢失敗,則拋出異常。如何在使用PDO運行多個查詢時遇到錯誤?
$db = new PDO("mysql:host=localhost;dbname=test", 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "
DELETE FROM car;
INSERT INTO car(name, type) SELECT name, from FROM vehicle;
";
try {
$db->exec($sql);
}
catch (PDOException $e)
{
echo $e->getMessage();
die();
}
上述代碼在不拋出異常的情況下執行。
如何確保所有查詢都已成功運行?如何檢查哪些查詢失敗?
P.S.我使用PDO多查詢來運行MySQL轉儲,但任何有效的.sql文件都應該可以工作。
最好的方法是一次運行一個。另外,你的INSERT查詢中有一個SQL語法錯誤 - 'SELECT'語句在'name'之後需要另一個列名, – Kryten
@Kryten我正在使用PDO來運行MySQL轉儲。拆分是一項艱鉅的任務。示例中的錯誤是故意的。 –
啊,我明白了。在這種情況下,我唯一的建議是檢查'catch'塊中的'PDOException',看它是否包含有關失敗的特定查詢的更多細節。開始於'catch'塊中的'print_r($ e)'... – Kryten