在一个doctrine native insert()命令中插入多个关联数组

时间:2013-04-20 14:32:05

标签: php mysql doctrine-orm

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

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

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

为了澄清,我正在开展一项迁移任务,在该任务中,数据将从旧架构处理并转换为新架构。但由于实体只是新的架构结构,我可以将两个db连接到ORM样式。这就是我遵循本机查询支持的原因。此外,随着批量数据的传输,我认为单个交易中的多个插入将使流程更快。

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

1 个答案:

答案 0 :(得分: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);
});