0

私たちのプロジェクトで本の売り手の数を減らすために使用される機能があります。それはその機能です

class listab_Model_Books extends listab_Model_BaseBooks
{
    public function decreaseSeller($code)
    {
        $row = Doctrine_Query::create()
               ->from('listab_Model_Books b')
               ->where('b.code = ?',$code)
               ->fetchOne();
//            var_dump($row['seller']);
       $q = Doctrine_Query::create()
               ->from('listab_Model_Books b')
               ->set('b.seller = ?',$row['seller']-1)
               ->where('b.code = ?',$code)
               ->execute();
    }
}

この関数を使用しようとすると、このエラーが発生します

SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens dotrine

私は何を間違っていますか:(

4

1 に答える 1

0

正確さのために編集されました。

「set」は、次のように更新でのみ使用する必要があると思います。

Doctrine_Query::create()
->update('listab_Model_Books b')
->set('b.seller', '?', $row['seller']-1)
->where('b.code = ?',$code)
->execute();

更新を行う場合は、「update」句を使用する必要があります。それ以外の場合は、選択として扱われます。

于 2012-10-13T14:07:33.270 に答える