在codeigniter中一起更新和加入查询?

时间:2017-02-19 04:31:29

标签: php mysql codeigniter

在连接两个表时更新数据,但它在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子句给我一个错误,使用这个查询是否正确?

3 个答案:

答案 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(),则必须对其进行修改。