Все данные становятся NULL при запуске Update Query MySQL

У меня проблема с обновлением запроса MySQL, и я думаю, что это так странно. я бегу Обновить запрос в моем коде с Where пункт в этом запросе. Но когда я прекращаю этот запрос, все данные в моей таблице становятся NULL, и это не только в данных, содержащихся в Where пункт, но во всей таблице.

Это мой код:

$book = json_decode($this->input->post('stringify'));

foreach ($book as $row)
{
$data = array(
'price' => $row->price,
'date_modified' => date("Y-m-d H:i:s"),
'modified_by' => $row->username
);

$this->db->where('id', $row->id);
$this->db->where('book_id', $row->book_id);
$this->db->update('book_availability', $data);
}

Я создаю этот запрос с помощью codeigniter Framework. Я просто хочу знать, почему этот запрос обновляет все данные в моей таблице, а не только данные в Where пункт. Возможно, сервер вызвал эту проблему или что-нибудь еще, возможно, вызвало это. Я надеюсь, что кто-то может подсказать мне, почему это произошло. Благодарю.

0

Решение

Это может произойти, если нет значения, связанного с переменными, которые вы используете для условия где

Всегда полезно проверить ваши данные перед вставкой в ​​базу данных:

foreach ($book as $row)
{
if(isset($row->id) && $row->id != '' && isset($row->book_id) && $row->book_id != '' ) {
$data = array(
'price' => $row->price,
'date_modified' => date("Y-m-d H:i:s"),
'modified_by' => $row->username
);

$this->db->where('id', $row->id);
$this->db->where('book_id', $row->book_id);
$this->db->update('book_availability', $data);
}
}

Теперь данные БД будут обновляться, только если у вас есть значения для заданных переменных. Вы можете использовать больше проверок, таких как проверка идентификатора, если он числовой (согласно структуре вашей БД) или недействительный.

3

Другие решения

Может быть, попробовать это

$this->db->update('mytable', $data, "id = 4");

Таким образом, вы можете передать ваше предложение WHERE в функцию обновления
Я бы порекомендовал создать предложение WHERE, присвоить его переменной, а затем передать его функции обновления в качестве третьего параметра.

Надеюсь это поможет

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector