在zendframework中使用Db类时,框架会自动给sql语句添加引号以防止数据库攻击,也就是说
update table set a = a+1 会别解析为 update table set a = 'a+1' 这当然得不到正确的结果,解决办法如下:
$oid = $this->getRequest()->getParam('option');
$vote = new Vote();
$db = $vote->getAdapter();
$set = array('optionNum' => new Zend_Db_Expr('optionNum+1'));
$where = $db->quoteInto('oid = ?',$oid);
$affected_rows = $vote->update($set, $where);
Zend_Db_Expr这个类的作用是去掉对要转化的类型进行添加引号的操作!