SQLSTATE [HY093]:无效的参数编号:绑定变量的数量与令牌数字和主题的数量不匹配

时间:2012-10-13 13:53:56

标签: zend-framework doctrine

在我们的项目中有一个用来减少书籍卖家数量的功能就是这个功能

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

我做错了什么:(

1 个答案:

答案 0 :(得分:0)

已修改以获得正确性。

我认为“set”只能用于更新,如下所示:

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

如果您正在尝试进行更新,则应使用“update”子句。否则它将被视为选择。