php – PDO事务函数与MySQL事务语句?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – PDO事务函数与MySQL事务语句?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
PDO提供启动,提交和回滚事务的功能
$dbh->beginTransaction();
$sth = $dbh->PRepare('
    ...
');
$sth->execute(); // in real code some values will be bound
$dbh->commIT();

有没有理由使用PDO函数而不是简单地使用MysqL中的事务语句?即:

$sth = $dbh->prepare('
    START TRANSACTION;
    ...
    COMMIT;
');
$sth->execute(); // in real code some values will be bound

更新:只是给其他人调查这个,经过一些测试我实际上发现上面的第二个案例(在Prepare()中使用START TRANSACTION和COMMIT)将导致抛出异常.因此,为了将事务与预准备语句一起使用,必须使用第一种情况中显示的PDO函数.

从可移植性的角度来看,最好使用PDO提供的接口,以您想要使用不同的DBMS,或者引入另一个习惯于其他DBMS的团队成员.

例如,SQLite uses a slightly different syntax;如果您要从MysqL迁移到sqlite数据库,则必须更改PHP代码中包含START TRANSACTION语句的每个字符串;因为它不再是数据库的有效语法. SQL Server 2014是另一个不使用此语法的示例.

当然,you can also use BEGIN; in MySQL启动一个事务,那将在sqlite和sql Server中正常工作.你可以改用它.

你经常能够找到一个你喜欢的语法,并且这个语法相当便携,但是如果你不需要的话,为什么要花时间和精力去思考呢?充分利用a dozen PDO drivers可以让您的生活更轻松的事实.如果您完全关心一致性,那么支持API而不是特定于实现的sql语法.

脚本宝典总结

以上是脚本宝典为你收集整理的php – PDO事务函数与MySQL事务语句?全部内容,希望文章能够帮你解决php – PDO事务函数与MySQL事务语句?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。