Как найти успешно выполненный запрос или нет? - PullRequest
1 голос
/ 22 августа 2011

я использую codeigniter 2.0.2, и это из его руководства пользователя

$data = array(
               'title' => $title,
               'name' => $name,
               'date' => $date
            );

$this->db->where('id', $id);
$this->db->update('mytable', $data); 

мой вопрос, когда это выполнено, как вы находите его выполненным правильно или нет?

Ответы [ 3 ]

4 голосов
/ 22 августа 2011

Функция update возвращает значение:

$result = $this->db->update('mytable', $data);

Проверьте, является ли значение TRUE (успех) или FALSE (сбой).update запускает query внутри, а затем возвращает возвращаемое значение query ( Ref ):

Функция query () возвращает объект результата базы данных, когда «прочитано»"Запросы типа, которые вы можете использовать, чтобы показать свои результаты.Когда выполняются запросы типа «запись», он просто возвращает ИСТИНА или ЛОЖЬ в зависимости от успеха или неудачи.

2 голосов
/ 22 августа 2011

Используйте

$this->db->affected_rows()

чтобы узнать, сколько строк было затронуто в запросах типа записи (обновление, вставка и т. Д.)

http://codeigniter.com/user_guide/database/helpers.html

0 голосов
/ 24 августа 2011

Оба ответа верны.Вы просто должны использовать каждый в зависимости от случая.Если вы просто проверяете, был ли выполнен запрос, используйте этот метод:

$result = $this->db->update('mytable', $data);

, если вы действительно хотите, чтобы количество строк было затронуто, второй метод лучше:

$this->db->affected_rows()

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

Это было бы ложным срабатыванием.И затронутых строк будет 0. Надеюсь, это помогло =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...