1k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo Leute,

ich habe mir ein kleines skript geschrieben, welches alle vorhandenen datenbanken sowie tabellen aus phpmyadmin ausliest. die datenbanken liest er soweit auch aus, nur beim auslesen der anzahl der tabellen erhalte ich folgenden fehler:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\test_database_connection.php on line 19.

hier nochmal der quelltext:

<html>
<head>
</head>
<body>
<?php
$link = mysql_connect("localhost","root");

if(isset($link))
{
echo "Verbindung zum MySQL-Server aufgebaut<br \><br \>";

$dbname = mysql_list_dbs($link);
$number_dbs = mysql_num_rows($dbname);
$count_dbs = 0;

while($count_dbs < $number_dbs)
{
$query_tables = mysql_query("show tables from $dbname", $link);
$number_tables = mysql_num_rows($query_tables);

if($number_tables)
echo '<div style="border:1px solid #000000;"><a href="#">'.mysql_db_name($dbname, $count_dbs).'</a></div>';
else
echo '<div style="border:1px solid #000000;">'.mysql_db_name($dbname, $count_dbs).'</div>';

$count_dbs++;
}
}
else
die("Verbindung zum MySQL-Server konnte nicht aufgebaut werden: ".mysql_error());
?>
<body>
</html>

laut der dokumentation gibt mysql_query eine ressource zurück, daher verstehe ich nicht warum mysql_num_rows so rumzickt. ich hoffe ihr könnt mir helfen

1 Antwort

0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Im Fehlerfall gibt mysql_query() keine Ressource zurück, z.B. wenn deine SQL-Abfrage syntaktisch nicht korrekt war oder eine der angegebenen Tabellen/Spalten nicht in der DB existiert.

Mit mysql_error() kannst du dir in diesem Fall die Fehlermeldung im Klartext ausgeben lassen.

mysql_list_dbs() gibt selbst eine Ressource zurück, du verwendest den Rückgabewert aber auch in deiner Abfrage "show tables from $dbname". Das wird vermutlich eine der Fehlerursachen sein.
...