Codeigniter $ this-> db-> disabled_rows () всегда возвращает 1 - PullRequest
9 голосов
/ 22 декабря 2011

Я использую codeigniter версии 2.0.3.Я пытаюсь получить количество затронутых строк после запроса на обновление, используя

$this->db->affected_rows

Всегда возвращает 1, даже если ни одна строка не была обновлена.Я попытался с

mysql_affected_rows()

, и он возвращает -1 в случае сбоя запроса и 0, если ни одна запись не была обновлена.

Редактирование включает мой код

Я простоиспользуя

$country_id = $this->input->post('country_id');
$time=$this->input->post('time');

$insert_array = array(
  'country' => $this->input->post('name')
);
$this->db->update('country_master', $insert_array, array("country_id" => $country_id,"last_updated"=>$time));
$afftectedRows=$this->db->affected_rows();

1 Ответ

19 голосов
/ 23 декабря 2011

На самом деле мой код был такой

if (!$country_id) {
    $this->db->insert('country_master', $insert_array);
    $id = $this->db->insert_id();
} else {
    $this->db->update('country_master', $insert_array, array("country_id" => $country_id, "last_updated" => $time));
}
$afftectedRows = $this->db->affected_rows();

И я изменил его на

if (!$country_id) {                
    $this->db->insert('country_master', $insert_array);
    $id = $this->db->insert_id();
} else {
    $this->db->update('country_master', $insert_array, array("country_id" => $country_id, "last_updated" => $time));
    $afftectedRows = $this->db->affected_rows();
}

И теперь он работает нормально.

И большое спасибо заответы ..

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