Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Kohana] PostgreSQL + insert_id() = false
phpion
post
Post #1





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nowe informacje na dole postu

Witam ponownie tym razem w innym temacie (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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'.

Ten post edytował phpion 20.07.2008, 19:48:54
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 23:58