2

有什么办法,我可以在数据库表中插入多个关联数组,并支持学说的本机 sql 查询执行?目前,我可以看到只插入一个单行/关联数组。代码:

$connection = $em->getConnection();
$connection->insert('un_table_name', $associative_data_array);

我的目标是在单个语句中插入多行,以便将它们插入单个事务中。

澄清一下,我正在执行一项迁移任务,其中数据将被处理并从旧模式转移到新模式。但由于实体仅在新的模式结构中,我可以将两个数据库与 ORM 样式连接起来。这就是我遵循本机查询支持的原因。由于批量数据将被传输,我认为单个事务中的多个插入将使过程更快。

任何建议/解决方案表示赞赏。谢谢。

4

1 回答 1

3

您可以使用 Connection#transactional($func):

$connection = $em->getConnection();
$connection->transactional (function ($connection) {
    $connection->insert('un_table_name', $associative_data_array1);
    $connection->insert('un_table_name', $associative_data_array2);
    ...
    $connection->insert('un_table_name', $associative_data_arrayN);
});
于 2013-04-20T21:18:19.083 回答