在连接两个表时更新数据,但它在where条件中给出错误 我可以在查询中一起使用连接和更新吗?
这是我的代码
public function update_model($id,array $data)
{
//$textArea=$data['textdata'];
$this->db->join('user_data', 'user.id = user_data.id');
$this->db>where('user_data.id',$id);
$this->db->update('user_data',$data);
$query=$this->db->get();
return $query->result();
}
我在mysql中得到了如下错误
致命错误:未捕获错误:调用未定义的函数where()in C:\ xampp \ htdocs \ P_Display \ application \ models \ Pmodel.php:103 Stack 追踪:#0 C:\ XAMPP \ htdocs中\ P_Display \应用\控制器\ user.php的(1 24): Pmodel-> update_model(' 1',数组)#1 C:\ XAMPP \ htdocs中\ P_Display \ SYSTEM \核心\ CodeIgniter.php(360): User-> updateSave(' 1')#2 C:\ xampp \ htdocs \ P_Display \ index.php(202): require_once(' C:\ xampp \ htdocs ...')#3 {main}引入 第103行的C:\ xampp \ htdocs \ P_Display \ application \ models \ Pmodel.php
where子句给我一个错误,使用这个查询是否正确?
答案 0 :(得分:4)
将其更正为
$this->db>where('user_data.id',$id);//see here missing arrow
要
$this->db->where('user_data.id',$id);
<强>更新强>
像这样更新表..
$sql = "UPDATE user_data AS ud JOIN user AS u ON ud.id = u.id SET ud.col1 = val1,ud.col2 = val2 WHERE ud.id = $id";
$this->db->query($sql);
或强>
$this->db->join('user_data', 'user.id = user_data.id');
$this->db->set($data);
$this->db->where('user_data.id',$id);
$this->db->update('user_data');
答案 1 :(得分:3)
感谢@HekMet的回复
现在我得到了代码,但是以不同的方式了解它并告诉我你是否发现了一些问题..
public function update_model($id,array $data)
{
$uname=$data['uname'];
$email=$data['email'];
$password=$data['password'];
$address=$data['address'];
$mobilenumber=$data['Mobilenumber'];
$job=$data['Job'];
$query=
$this->db->set('user_data.email',$email);
$this->db->set('user.password',$password);
$this->db->set('user_data.mobilenumber',$mobilenumber);
$this->db->set('user_data.job',$job);
$this->db->set('user.uname',$uname);
$this->db->where('user_data.id',$id);
$this->db->where('user.id',$id);
$this->db->update('user_data JOIN user ON user_data.id= user.id');
return $query;
}
因为我的变量是不确定的,所以我需要分别设置它们的值。
答案 2 :(得分:0)
$this->db->join()
未包含在$this->db->update()
中,这就是为什么它出现查询错误的原因。
如果要在更新中使用join()
,则必须对其进行修改。