Обновление данных при объединении двух таблиц, но это дает ошибку в условии, где
Могу ли я использовать соединение и обновить вместе в запросе?
вот мой код
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
Фатальная ошибка: Uncaught Error: вызов неопределенной функции where () в
C: \ xampp \ htdocs \ P_Display \ application \ models \ Pmodel.php: 103 стека
трассировка: # 0
C: \ XAMPP \ HTDOCS \ P_Display \ Application \ контроллерах \ user.php (1 24):
Pmodel-> update_model (‘1’, Array) # 1
C: \ XAMPP \ HTDOCS \ P_Display \ \ Система ядра \ CodeIgniter.php (360):
Пользователь-> updateSave (‘1’) # 2 C: \ xampp \ htdocs \ P_Display \ index.php (202):
require_once (‘C: \ xampp \ htdocs …’) # 3 {main} добавлено
C: \ xampp \ htdocs \ P_Display \ application \ models \ Pmodel.php в строке 103
предложение where дает мне ошибку, и правильно ли использовать этот запрос?
Исправить это как
$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');
Спасибо @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;}
так как это давало ошибку, что моя переменная неоднозначна, мне нужно просто установить их значения отдельно.
$this->db->join()
не входит в $this->db->update()
вот почему он вышел с ошибкой в запросе.
Если вы хотите использовать join()
в обновлении вы должны изменить его.