0

zend フレームワークで 1 つの update() で複数の行を更新する方法を理解しようとしています。

ids という名前の ID の配列があり、これらの ID のすべての行の 1 つのフィールドを更新したいと考えています。

そのような場所条件を作成しようとしました:

$where = Bootstrap::$db->quoteInto('id_task IN (?)', $ids);

そして update メソッドを呼び出します:

$this->getDbTable()->update(array("deleted" => 1), $where);

しかし、構文エラーまたはアクセス違反エラーがあり、クエリはデバッグ出力で次のようになります。

array(2) {
            [0]=>
            &string(54) "UPDATE `tasks` SET `deleted` = ? WHERE (id_task IN ())"
            [1]=>
            &array(1) {
              [0]=>
              int(1)
            }
          }

更新の where 条件で配列を渡す方法を知っている人はいますか?

4

1 に答える 1

0

多分このように:

$where = Bootstrap::$db->quoteInto('id_task IN (?)', implode( ',', $ids ) );

あなたidsが整数であり、検証済みであるとします。

于 2013-05-10T13:31:30.413 に答える