[英]PHP MySQL Transactions
无论如何,是否可以在一个命令中执行SQL事务? 例如
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命令
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.