Doctrine executeUpdate数组参数

Har*_*rts 5 php doctrine symfony doctrine-orm

我怎么能用数组更新doctrine,所以我不做每次循环(我只想做1次调用数据库)

$myarray = [1, 2, 3];
$sql = "UPDATE `mytable` SET is_processing = :is_processing, end_time=NOW() WHERE id = :id";

$result = $this->connection->executeUpdate(
    $sql,
    array(
        'is_processing' => false,
        'id' => $myarray // This is unknown number amount of array
    )
);
Run Code Online (Sandbox Code Playgroud)

我想要实现的是:它应该使用字段is_processing = false更新表,endTime成为当前时间,其中id =数组指向的任何内容

Fed*_*kun 8

IN在您的查询中使用子句.

UPDATE `mytable` SET is_processing = :is_processing, end_time=NOW() WHERE id IN(:ids)
Run Code Online (Sandbox Code Playgroud)

然后

$result = $this->connection->executeUpdate(
    $sql,
    array(
        'is_processing' => false,
        'ids' => [3, 25]
    ),
    array(
        'ids' => \Doctrine\DBAL\Connection::PARAM_INT_ARRAY
    )
);
Run Code Online (Sandbox Code Playgroud)