Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Problem z wykonaniem zapytania
Mateusz02
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 8.04.2015

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


Hej, jestem tu nowy, więc przepraszam, jeśli rozwiązanie problemu jest już gdzieś w sieci, szukałem, ale to co znalazłem nie pomogło.
Poniżej wklejam kod pliku index.php:

  1. <xml version="1.0" encoding="iso-8859-2">
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  6. <meta name="Description" content=" [wstaw tu opis strony] " />
  7. <meta name="Keywords" content=" [wstaw tu slowa kluczowe] " />
  8. <meta name="Author" content=" [dane autora] " />
  9. <meta name="Generator" content="kED" />
  10.  
  11. <title> Moja strona </title>
  12.  
  13. <link rel="stylesheet" href=" style.css " type="text/css" />
  14. </head>
  15. <body>
  16.  
  17. <div id = "top">
  18. Nagłówek
  19. </div>
  20.  
  21. <div id = "content">
  22.  
  23. <div id = "content-left">
  24. BUM
  25. </div>
  26.  
  27. <div id = "content-right">
  28.  
  29. <?php
  30. $db_obj = new mysqli("localhost","Mate","dom","ludzie");
  31. if($db_obj->connect_errno)
  32. {
  33. echo 'Błąd podczas próby połączenia z Bazą Danych ... <br />';
  34. }
  35. else
  36. {
  37. echo 'Połączenie z Bazą zostało nawiązane ... <br />';
  38. }
  39.  
  40.  
  41. $query = 'SELECT * FROM człowiek';
  42.  
  43. if($result = $db_obj->query($query))
  44. {
  45. ?>
  46.  
  47. <table>
  48.  
  49. <?php
  50. while($row = $result->fetch_row())
  51. {
  52. echo "<tr>";
  53. echo "<td>$row[0]</td>";
  54. echo "<td>$row[1]</td>";
  55. echo "<td>$row[2]</td>";
  56. echo "</tr>";
  57. }
  58. ?>
  59. </table>
  60.  
  61. <?php
  62. }
  63. else
  64. {
  65. echo 'Wystąpił błąd: nieprawidłowe zapytanie ...<br />';
  66. }
  67.  
  68. echo mysql_error($db_obj);
  69.  
  70. if ($db_obj->close())
  71. {
  72. echo 'Połączenie z serwerem MySQL zostało zamknięte ... <br />';
  73. }
  74. else
  75. {
  76. echo 'Błąd podczas zamykania połączenia z BD ...<br />';
  77. }
  78.  
  79. ?>
  80. </table>
  81. </div>
  82.  
  83. </div>
  84.  
  85. <div id = "bot">
  86. Stopka
  87. </div>
  88.  
  89. </body>
  90. </html>

A poniżej to co wyświetla się w najważniejszym oknie, czyli odczyt kilku wierszy z bazy danych (w PHPMyAdmin zapytanie działa bez problemu):

Połączenie z Bazą zostało nawiązane ...
Wystąpił błąd: nieprawidłowe zapytanie ...

Warning: mysql_error() expects parameter 1 to be resource, object given in C:\WebServ\httpd\index.php on line 72
Połączenie z serwerem MySQL zostało zamknięte ...

Gdzie jest problem?
Powód edycji: [Kshyhoo]: bb-code, tagi
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Witamy na Forum. Zapoznaj się z panującymi zasadami, by uniknąć blokady wątków. Przenoszę.

Masz w bazie tabelę człowiek?
Go to the top of the page
+Quote Post
Mateusz02
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 8.04.2015

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


Umie ktoś pomóc? Naprawdę nie wiem, co się dzieje, treść kodu jest przepisana z książki i mimo to, zapytanie generuje błąd. Gdzie tkwi problem? W konfiguracji php / mySql?
Połączenie z bazą jak widać nawiązywane jest bez problemu, a jednak zapytanie już nie. Instrukcja SELECT jest tak prosta, że nie ma prawa być źle sformułowana, o co chodzi w generowanym błędzie? Nie umiem go zrozumieć. Pomocy. Jak przeskoczę ten problemik, dalej pójdzie jak z górki.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




A odpowiedziałeś na moje pytanie?
Go to the top of the page
+Quote Post
Mateusz02
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 8.04.2015

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


Tak, dokładnie o tej samej nazwie.
Go to the top of the page
+Quote Post
Raito
post
Post #6





Grupa: Zarejestrowani
Postów: 156
Pomógł: 19
Dołączył: 27.04.2014

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


Łączysz się z mysqli, a dajesz mysql_error.
Go to the top of the page
+Quote Post
Mateusz02
post
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 8.04.2015

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


Cytat(Raito @ 8.04.2015, 19:02:33 ) *
Łączysz się z mysqli, a dajesz mysql_error.


Masz racje, szukałem odpowiedzi na różnych forach, nie zwróciłem na to nazwet uwagi. Ale to i tak nie rozwiązuje problemu.
Go to the top of the page
+Quote Post
Raito
post
Post #8





Grupa: Zarejestrowani
Postów: 156
Pomógł: 19
Dołączył: 27.04.2014

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


A jaki jest problem? Dalej ten sam błąd?
Go to the top of the page
+Quote Post
Mateusz02
post
Post #9





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 8.04.2015

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


Zamieniłem błędną linię na prawidłową (o następującej treści):
printf("Connect failed: %s\n", $db_obj->error);

Teraz wyświetla się konkretny komunikat:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'łowiek' at line 1

Dalej jednak nie wiem o jaki błąd w składni może chodzić, a już w ogóle nie wiem co oznacza "' łowiek' " - nie mam takiej literówki ani w bazie, anie w skrypcie. nie wiem, skąd się to bierze. Co powinienem zrobić?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #10





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Zmień nazwę tablemi na bez polskich znaków... analogicznie w skrypcie (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Mateusz02
post
Post #11





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 8.04.2015

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


Właśnie o tym pomyślałem, zaraz to zrobię, bez względu jednak na wynik chciałbym też wiedzieć, co należy zrobić, żeby działały polskie znaki w nazwach tabel (bo trudno mi uwierzyć w to, że to niemożliwe)? Chodzi o kodowanie? Powinienem użyć jakiejś funkcji? Czy w ogóle zapisywaćdane w DB stosując inne kodowanie?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #12





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat
Ogólnie przyjeło się iż nazwy tabel nie zawierają polskich znaków, spacji i innych udziwnień.
Go to the top of the page
+Quote Post
Mateusz02
post
Post #13





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 8.04.2015

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


Dziękuję za cenną pomoc, teraz już ruszam naukę z kopyta, mam nadzieję, że kolejnych pytań nie będę zadawał w dziale "piaskownica" (IMG:style_emoticons/default/smile.gif)

Po zmienieniu nazw na mniej polskie wszystko śmiga zgodnie z oczekiwaniami.

Pozdrawiam.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #14





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat(Mateusz02 @ 8.04.2015, 19:31:45 ) *
mam nadzieję, że kolejnych pytań nie będę zadawał w dziale "piaskownica" (IMG:style_emoticons/default/smile.gif)

Powodzenia (IMG:style_emoticons/default/wink.gif)

Możesz sprawdzić sobie, w jaki sposób PHP traktuje Twoje zapytanie umieszczając je w ECHO (IMG:style_emoticons/default/smile.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: 14.10.2025 - 01:57