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 你经常能够找到一个你喜欢的语法,并且这个语法相当便携,但是如果你不需要的话,为什么要花时间和精力去思考呢?充分利用a dozen PDO drivers可以让您的生活更轻松的事实.如果您完全关心一致性,那么支持API而不是特定于实现的SQL语法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |