所以我有一個需要使用mysql_query()加載的SQL轉儲文件。不幸的是,用它執行多個查詢是不可能的。PHP:在一個mysql_query語句中執行多個SQL查詢
- >它不能被假定mysql命令行客戶(MySQL的--help)安裝 - 用於裝載SQL文件直接
- >它不能被假定的mysqli擴展安裝
/* contents of dump.sql, including comments */
DELETE FROM t3 WHERE body = 'some text; with semicolons; scattered; throughout';
DELETE FROM t2 WHERE name = 'hello';
DELETE FROM t1 WHERE id = 1;
的爆炸()以下不會工作,因爲某些轉儲內容的值包含分號。
$sql = explode(';', file_get_contents('dump.sql'));
foreach ($sql as $key => $val) {
mysql_query($val);
}
加載SQL而不修改轉儲文件的最佳方式是什麼?
你做一行的末尾有分號的情況下,但它不是一個聲明,例如結束在過程或觸發器定義的主體內部。像DELIMITER這樣的語句不會以分號結尾。 – 2008-12-06 02:27:44