Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysqli_num_rows zwraca 3, a mysqli_fetch_assoc null
Forum PHP.pl > Forum > PHP
starach
Błąd: "current() [function.current]: Passed variable is not an array or object"
Może mam pomroczność jasną, ale nie mam pojęcia dlaczego takie dziwne rzeczy się dzieją.
  1. <?php
  2. public function columnCount()
  3. {
  4. return mysqli_num_rows($this->sql_result);
  5. }
  6. public function fetch($type=2)
  7. {
  8. if($type==2) {
  9. return mysqli_fetch_assoc($this->sql_result);
  10. } else if($type==3) {
  11. return mysqli_fetch_row($this->sql_result);
  12. } else if($type==4) {
  13. return mysqli_fetch_array($this->sql_result,MYSQLI_BOTH);
  14. }
  15. }
  16. ?>
Metoda która używa powyższych dwóch:
  1. <?php
  2. public function _read($session_id)
  3. {
  4. $query = 'SELECT sess_value FROM '.DB_PREFIX.'session WHERE sess_id=''.$session_id.''';
  5. $result = $this->db->query($query);
  6. if($result->columnCount() > 0)
  7. {
  8. return current($result->fetch());
  9. } else {
  10. return '';
  11. }
  12. }
  13. ?>

edit>
Zapomniałem dodać że w tabeli session nie ma żadnych wpisów,
tym bardziej zastanawia mnie dlaczego columnCount zwraca 3
delfinium
Ciężko powiedzieć nie widząc całego kodu. Wklepałem sobie to co wkleiłeś i u mnie to działa, liczba znalezionych wierszy jest poprawna. Pomiędzy linię 5 i 6 przykładu dodaj

  1. <?php
  2. var_dump( $result );
  3. ?>


i zobacz co właściwie dostajesz w wyniku zapytania, może to coś wyjaśni.
starach
Dostałem coś takiego:
object(DB_Result)#6 (1) {
["sql_result:private"]=>
object(mysqli_result)#5 (0) {
}
}
3 - SELECT sess_value FROM session WHERE sess_id='0ecf3ec4115b17626235fbd7821d4439'
edit>
[SOLVED]
Błąd polegał na tym że funkcja którą napisałem do wywoływania obiektów
i której dałem możliwość zwracania referencji do obiektu lub jego instancji zwracała referencję.
Pomyśleć że dodawałem możliwość zwracania obiektu specjalnie z myślą o obsłudze połączenia z bazą,
a w punkcie kulminacyjnym zapomniałem go użyć. hehe
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.