2016-04-02 14 views
2

どのように配列して、教義に更新を行うことができますので、私は毎回のためにループのために行いません(私は、データベースへの1つのコールをしたい)教義のexecuteUpdate配列パラメータ

$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 
    ) 
); 

達成しようとし、mは次のとおりです。 それは偽のフィールドis_processing =でテーブルを更新する必要があり、endTimeはは

答えて

5

使用クエリでIN句に、現在の時刻、ID =どんな配列ポイントになります。

UPDATE `mytable` SET is_processing = :is_processing, end_time=NOW() WHERE id IN(:ids) 

その後、

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

私は意味、IDは、配列 – Harts

+0

の未知数のためにあなたは、アレイDBAL使用しているのですか? - 回答を更新しました – Federkun

+0

わかりません。私はそうだと思います – Harts