在我们的项目中有一个用来减少书籍卖家数量的功能就是这个功能
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
我做错了什么:(
答案 0 :(得分:0)
已修改以获得正确性。
我认为“set”只能用于更新,如下所示:
Doctrine_Query::create()
->update('listab_Model_Books b')
->set('b.seller', '?', $row['seller']-1)
->where('b.code = ?',$code)
->execute();
如果您正在尝试进行更新,则应使用“update”子句。否则它将被视为选择。