Codeigniter设置多个条件,如何取消设置

时间:2010-05-12 19:48:27

标签: mysql codeigniter where-clause

我有一个来自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”?谢谢!

2 个答案:

答案 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));