Codeigniter проигнорировал условие WHERE в запросе на обновление - PullRequest
0 голосов
/ 02 июля 2019

Мы столкнулись с критической проблемой при обновлении 1 записи для таблицы.Запрос на обновление обновлен для всех 22k записей вместо 1 записи.Потому что условие WHERE было пропущено в запросе.

Приложение работает на PHP 5 и Codeigniter 2.0.3.Мы попытались повторить проблему, но нам не удалось это сделать.

Эта логика существует с давних времен и до сих пор работает должным образом.Но в определенный момент времени этот запрос не смог добавить условие WHERE и был обновлен для всех записей в таблице

. Мы записали логику запроса следующим образом:

$this->db->where('id', $id);
$this->db->update($this->table_name, $attributes);

Мы предоставляем $ id как целое числозначение.Пример: 2 или 5 или 100, как это

В журнале приложения мы получили запрос

UPDATE `users` SET `status` = 1, `updated_by` = 'system'

Ожидается:

UPDATE `users` SET `status` = 1, `updated_by` = 'system'  WHERE `users`.`id` = 34.

В журнале не сообщается об ошибке.

Пожалуйста, дайте мне знать, почему произошел этот сбой.

Заранее спасибо

1 Ответ

0 голосов
/ 02 июля 2019

Не могли бы вы сделать код в следующем формате

$this->db->where('id', 2);
$this->db->update('mytable', $record);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...