我知道这个问题已经被问到,但我似乎在实施目前正在处理的项目中的解决方案时遇到问题。我试图更新CodeIgniter中的两个表,但框架的escape()数据库函数似乎做错了事情。下面是代码片段很努力:在CodeIgniter中更新多个表格
public function update_taxpayer($usertin, $data){
$this->usid = $usertin;
if($this->verify_user_tin($this->usid)){
$this->db->set($data);
$this->db->where('t.taxpayer_id','tp.id');
$this->db->where('t.tin', $usertin);
$this->db->update("tin AS t, taxpayer AS tp");
$updated_rows = $this->db->affected_rows();
}
}
,同时试图从我的控制器运行更新我得到这个错误:
Error Number: 1146
Table 'crsirs.tin as t, taxpayer' doesn't exist
UPDATE `tin AS t, taxpayer` AS `tp` SET `t`.`address` = '', `t`.`name` = 'MAPS PROJECT CROSS RIVER STATE', `tp`.`lastModified` = '2016-06-07 13:54:27', `tp`.`city` = '', `tp`.`email` = '', `tp`.`mobile` = '', `tp`.`phone` = NULL WHERE `t`.`taxpayer_id` = 'tp.id' AND `t`.`tin` = '1902406349-0001'
Filename: C:/Program Files/wamp/www/CRSIRS/system/database/DB_driver.php
Line Number: 691
的escape()函数似乎是合并这两个表作为这一行中的一个tin AS t, taxpayer
,似乎没有妥善逃避它们。请问我该如何解决这个问题?
我知道我可以实现我希望通过交易实现的目标,但我固执的自我并不想这么做! – aknessy
什么版本的CodeIgniter? – eggyal
@eggyal我目前使用CodeIgniter 3.0.6 – aknessy