繁体   English   中英

PHP MySQL事务

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM