![](/img/trans.png)
[英]How is it possible to catch Doctrine\DBAL\Exception\ConnectionException?
[英]Deleting multiple rows at once with Doctrine DBAL, is it possible?
首先,我只想提一下,这根本不是一个“问题”。 使用Doctrine DBAL删除不是问题,我能够做到。
我真正想知道的是,有没有办法一次删除多行而不必循环,例如一个数组。
对于我的项目,我使用Silex和Doctrine DBAL
这是我目前如何做的一个例子:
$toDelete = array(1,2,3,4);
foreach($toDelete as $id){
$this->app['db']->delete('table_name',array('id' => $id ));
}
有没有办法避免循环?
您可以使用参数列表: http : //docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html#list-of-parameters-conversion
$connection->executeQuery('DELETE FROM table_name WHERE id IN (?)',
array(array(1,2,3,4)),
array(\Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
);
或者使用查询构建器:
$builder = $connection->createQueryBuilder()
->delete('table_name')
->where('id in (:ids)')
->setParameter(':ids', array(array(1,2,3,4)), Connection::PARAM_INT_ARRAY);
$builder->execute();
不是没有编写自己的查询。
$app["db"]
(假设默认的silex / doctrine设置)是一个学说连接,因此您可以执行所需的任何查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.