Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP][Solaris] mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Forum PHP.pl > Forum > Przedszkole
Artanis
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.
thek
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.
Artanis
  1. if (!$db)
  2. {
  3. echo "database connect error";
  4. die();
  5. }


A to nie sprawdza połączenia?
thek
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...
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.