Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][OOP i MySQLi] Problem :-)
kipen
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 15.08.2012
Skąd: woj. malopolskie

Ostrzeżenie: (0%)
-----


Korzystam obiektowego MySQLi i mam pewien problem, mianowicienie nie korzystam z zadnej biblioteki tylko to co jest wbudowane w php czyli klasa mysqli, mysqli_result, mysqli_smtm itp. i klasa mysqli dziala bez zarzutu tylko jak chce wyswiwtlic rekord z bazy klasą mysqli_result to wyswietla sie mi taki blad: Fatal error: Call to a member function fetch_array() on a non-object in [url do skryptu] a przed wyswietlaniem sie tego bledu nie wyswietlalo sie nic, jakies ewentualne bledy w skladni sa raczej niemozliwe bo kopiowalem caly przyklad z manuala php tej strony: php.net/manual/pl/mysqli-result.fetch-array.php
Oto skrypt:
  1. <?php
  2. $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
  3.  
  4. /* check connection */
  5. if (mysqli_connect_errno()) {
  6. printf("Connect failed: %s\n", mysqli_connect_error());
  7. exit();
  8. }
  9.  
  10. $query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
  11. $result = $mysqli->query($query);
  12.  
  13. /* numeric array */
  14. $row = $result->fetch_array(MYSQLI_NUM);
  15. printf ("%s (%s)\n", $row[0], $row[1]);
  16.  
  17. /* associative array */
  18. $row = $result->fetch_array(MYSQLI_ASSOC);
  19. printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
  20.  
  21. /* associative and numeric array */
  22. $row = $result->fetch_array(MYSQLI_BOTH);
  23. printf ("%s (%s)\n", $row[0], $row["CountryCode"]);
  24.  
  25. /* free result set */
  26. $result->free();
  27.  
  28. /* close connection */
  29. $mysqli->close();
  30. ?>


Moja wersja php na WebServie to 5.2.5 i mysle ze to moglo spowodowac ten blad, chociaz moze byc to cos innego jak myslicie?
Nie chcialbym wracac do proceduralnego MySQL wiec bardzo prosze o pomoc :-)
Go to the top of the page
+Quote Post
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dobra, masz tabelę City z polami Name, CountryCode oraz ID, tak jak to jest w manualu? (IMG:style_emoticons/default/snitch.gif)
zamień jeszcze:
  1. $result = $mysqli->query($query);

na
  1. $result = $mysqli->query($query);
  2. if(!$result)
  3. {
  4. printf("Errormessage: %s\n", $mysqli->error);
  5. }


Ten post edytował darko 17.08.2012, 12:37:13
Go to the top of the page
+Quote Post
kipen
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 15.08.2012
Skąd: woj. malopolskie

Ostrzeżenie: (0%)
-----


Tak, mam taką tabelę a odnosnie tego co ty piszesz o wyswietleniu się bledu to zrobie to troche pozniej bo teraz nie jestem na kompie i napisze co wyszlo :-)

--EDIT--

Dopisałem to i wyskoczyło "Errormessage: Something is wrong in your syntax obok 'City ORDER by id LIMIT 3' w linii 1" + jeszcze ten błąd co miałem. Jak usunąłem "ORDER by id LIMIT 3" to zostało samo "Errormessage: Something is wrong in your syntax obok 'City' w linii 1 " + jeszcze ten błąd co miałem, a nazwy tabeli usuwać raczej nie wypada (IMG:style_emoticons/default/haha.gif)

--EDIT--

Kiedy robię to stylem proceduralnym to wywala takie błędy:
Errormessage: Something is wrong in your syntax obok 'City ORDER by ID LIMIT 3' w linii 1
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in [url do skryptu] on line 18
()
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in [url do skryptu] on line 22
()
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in [url do skryptu] on line 26
()
Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in [url do skryptu] on line 30


Ten post edytował kipen 17.08.2012, 17:19:39
Go to the top of the page
+Quote Post
KotWButach
post
Post #4





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

Ostrzeżenie: (0%)
-----


A nie lepiej PDO?
Nie mieszaj mysql z mysqli a jezeli używasz mysql to on pobiera parametr dodatkowy.

Kiedyś uważałem że mysqli jest prostszy w użyciu ale tak nie jest, nie dla mnie wygrało PDO.

Ten post edytował KotWButach 17.08.2012, 18:21:19
Go to the top of the page
+Quote Post
kipen
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 15.08.2012
Skąd: woj. malopolskie

Ostrzeżenie: (0%)
-----


ehh... problem rozwiązany i tkwił w tym ze tabeli nie nazwałem City tylko table i jeszcze nie brałem tego w znaczniki `` (IMG:style_emoticons/default/smile.gif) A tutaj nie pisałem ze mam bład Errormessage: Something is wrong in your syntax obok 'table ORDER by ID LIMIT 3' w linii 1 tylko Errormessage: Something is wrong in your syntax obok 'table ORDER by ID LIMIT 3' w linii 1 zeby juz nie komplikowac sprawy ze mam inna nazwe tabeli a w tym tkwil blad (IMG:style_emoticons/default/haha.gif)
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.08.2025 - 16:31