1

我正在寻找与 Java 中的 jdbc 驱动程序类似的方式,以在 PHP 中执行一批更新。

在 jdbc 中有一个 API PreparedStatement.executeBatch(),它在一次往返数据库的过程中执行整个语句。

PHP PDO 是否具有类似的 API,如果没有,是否启动事务、执行更新然后提交将执行相同的效果,即在一次往返 DB 中执行所有更新,或者每次更新将往返 DB 并立即执行声明(虽然其他人看不到,因为它在交易中)?

4

2 回答 2

0

PHP PDO 没有批量执行查询。

在一个事务中运行许多插入和更新通常会大大提高执行速度。如果您在数据库上进行批处理作业,您应该在事务中批量运行查询。

于 2013-03-29T08:54:54.923 回答
0

Mysql中没有“批量更新”之类的东西。只有 SQL 查询。只要您可以在一次查询中进行更新,您的更新将在一次往返中完成。否则会有很多。无论使用什么 API。

说到单 SQL 查询,有 2 种可能的方式

  1. WHERE 中的 CASE 语句
  2. 使用 ON DUPLICATE UPDATE 语句进行 INSERT(!) 查询的巧妙技巧。这实际上会更新您的数据。
于 2013-03-29T09:03:53.760 回答