Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP][Solaris] mysql_fetch_array(): supplied argument is not a valid MySQL result resource, Problem z zapytaniem MySQL
Artanis
post 19.07.2011, 12:46:00
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 19.07.2011

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


Kod prosty do bólu do pokazania, że można wykonywać zapytania na bazie z poziomu PHP:

  1. <?php
  2.  
  3. $host="192.168.200.10";
  4. $user="php";
  5.  
  6. echo "host: $host user: $user<br>\n";
  7.  
  8. $db = mysql_connect($host, $user);
  9.  
  10. if (!$db)
  11. {
  12. echo "database connect error";
  13. die();
  14. }
  15.  
  16. $query="select `user`,`host`,`password` from mysql.user where `user`='php';";
  17. echo "query: $query<br>\n";
  18.  
  19. echo "<table border=1>";
  20.  
  21. echo "<tr><td>user</td><td>host</td><td>password</td></tr>";
  22.  
  23. $result=mysql_query($query);
  24. $row = mysql_fetch_array(mysql_query($query));
  25. $user=stripslashes($row['user']);
  26. $host=stripslashes($row['host']);
  27. $password=stripslashes($row['password']);
  28.  
  29. echo "<tr><td>$user</td><td>$host</td><td>$password</td></tr>";
  30.  
  31. echo "</table>";
  32.  
  33. ?>
  34.  


Wywołanie zwraca:

  1.  
  2. host: 192.168.200.10 user: php<br>
  3. query: select `user`,`host`,`password` from mysql.user where `user`='php';<br>
  4. <table border=1><tr><td>user</td><td>host</td><td>password</td></tr>
  5. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/apache2/www/mysql2.php on line 24
  6. <tr><td></td><td></td><td></td></tr></table>
  7.  


Z kolei wyplute zapytanie odpalone na bazie zwraca:

  1.  
  2. mysql> select `user`,`host`,`password` from mysql.user where `user`='php';
  3. +------+------+----------+
  4. | user | host | password |
  5. +------+------+----------+
  6. | php | % | |
  7. +------+------+----------+
  8. 1 row in set (0.00 sec)
  9.  


Taki sam jest problem gdy pytam o usera root. Pomóżcie proszę, bo skończyły mi się pomysły.

Ten post edytował Artanis 19.07.2011, 12:46:52
Go to the top of the page
+Quote Post
thek
post 19.07.2011, 13:14:16
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To rób to jak człowiek. Poprawnie używaj mysql_connect (parametry!), sprawdzaj czy zapytanie się powiodło i dopiero uzależniaj wyświetlanie od tego. Bo teraz masz skopane połączenie i tyle. Gdyby było poprawne to byś dostał MySQL resource a nie false.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Artanis
post 19.07.2011, 13:42:47
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 19.07.2011

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


  1. if (!$db)
  2. {
  3. echo "database connect error";
  4. die();
  5. }


A to nie sprawdza połączenia?
Go to the top of the page
+Quote Post
thek
post 19.07.2011, 15:01:24
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Sprawdza, ale skąd masz pewność, że po jego utworzeniu czegoś nie zapomniałeś? A tutaj widac, ze brakuje Ci jeszcze jednej rzeczy. Daj
  1. $result=mysql_query($query) or die(mysql_error());

a Cię olśni...


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 09:06