Nowe informacje na dole postu

Witam ponownie tym razem w innym temacie smile.gif
Nie wiem czy coś robię źle ale wydaje mi się, że raczej nie. Otóż w modelu użytkownika mam metodę:
  1. <?php
  2. public function insert($data) {
  3. return $this->db->insert('ntfr_user', $data)->insert_id();
  4. }
  5. ?>

która teoretycznie powinna zwracać id aktualnie dodanego użytkownika. Jednak za każdym razem zwracany jest fałsz (pomimo, iż user jest dodawany poprawnie do bazy).
Pozdrawiam,
pion

// EDIT:
Podążając za tym linkiem:
http://codeigniter.com/bug_tracker/bug/3048/
dodałem nazwę sekwencji co również nie pomogło. var_dump() wciąż pokazuje false worriedsmiley.gif

// EDIT2:
Niejako doszedłem do tego, w którym miejscu następuje błąd. Wartość insert_id ustawiana jest w tym momencie:
  1. <?php
  2. $this->insert_id = (strtolower($matches[0]) == 'insert') ? $this->get_insert_id($link) : FALSE;
  3. ?>

i jeśli FALSE zmienię na np. 'dupa' to insert_id przyjmuje wartość pośladków.

// EDIT3:
Problem rozwiązany! Należy nanieść pewne poprawki w system/libraries/drivers/Database/Pgsql.php zmieniając linię nr 356 z:
  1. <?php
  2. $this->insert_id = (strtolower($matches[0]) == 'insert') ? $this->get_insert_id($link) : FALSE;
  3. ?>

na:
  1. <?php
  2. $this->insert_id = (trim(strtolower($matches[0])) == 'insert') ? $this->get_insert_id($link) : FALSE;
  3. ?>

Po tym zabiegu wszystko działa poprawnie. $matches[0] zawiera dodatkowo spację na końcu stąd rozbieżność z 'insert'.