有沒有辦法在一個命令中執行SQL事務?例如PHP MySQL事務
mysql_query("
START TRANSACTION;
INSERT INTO table1 ....etc;
INSERT INTO table 2.....;
COMMIT;");
或者你是否總是要使用單獨的命令?例如
mysql_query("START TRANSACTION;");
mysql_query("INSERT INTO etc etc
感謝
有沒有辦法在一個命令中執行SQL事務?例如PHP MySQL事務
mysql_query("
START TRANSACTION;
INSERT INTO table1 ....etc;
INSERT INTO table 2.....;
COMMIT;");
或者你是否總是要使用單獨的命令?例如
mysql_query("START TRANSACTION;");
mysql_query("INSERT INTO etc etc
感謝
您可以通過使用PDO,而不是純粹的MySQL的語句,
$connection = new PDO('mysql:host=localhost;dbname=test', 'user', 'password');
$connection->beginTransaction();
$connection->exec('insert into table1...');
$connection->exec('insert into table2...');
$connection->commit();
當然,這只是一個簡單的例子,你應該使用準備語句來代替,並使用綁定變量用戶輸入,所以你贏了不必擔心很多關於sql注入的問題。
有了它必須是獨立的調用PHP的mysql_query功能。
如果您使用InnoDb作爲存儲引擎,MySql支持事務。 mysql api不允許將多個語句傳遞給mysql_query
,但由於每個連接都有一個事務,因此您可以將其分解爲多個調用。
如果你不想使用PDO,你可以使用mysqli的multi_query commnad