我有一个来自paypal的notify_url脚本,它应该使用以下代码更新我数据库中的多个表:
//更新第一张表
$ this-> db-> where('someid',$ somid);
$ this-> db-> update('table',$ data);
///更新第二个表
$ this-> db-> where('somesecondid',$ somesecondid)
$ this-> db-> update('anothertable',$ data2);
然后我收到以下错误:'where子句'中的未知列'somesecondid'
更新anothertable
设置avail
= 0 WHERE someid
='13'和somesecondid
='199'
因此,codeigniter将where子句组合成单个查询。有没有办法取消第一个,所以它只有“UPDATE anothertable SET avail = 0 WHERE somesecondid = 199”?谢谢!
答案 0 :(得分:2)
您可能希望在user_guide中查看Active Record Caching ...
http://codeigniter.com/user_guide/database/active_record.html#caching
也许你在代码中的某个地方有'$ this-> db-> start_cache()'。
答案 1 :(得分:1)
目前,我无法复制您的错误。我正在成功运行两个更新语句,如上所述。
作为替代方案,您可以使用数组(按照CodeIgniter Active Record documentation)将WHERE
子句信息直接传递给$this->db->update()
,如下所示:
$this->db->update('table', $data, array('someid' => $someid));
$this->db->update('anothertable', $data2, array('somesecondid' => $somesecondid));