mysql_num_rows geht nicht mehr?
Tim
- php
Hallo,
ich hab eine Reihe von Scripten geschrieben, die auch bisher alle fehlerfrei laufen.
Jetzt hab ich mein Mysql und mein PHP aktualisiert und jetzt läuft plötzlich der num_rows-Befehl nicht mehr?
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Der Quellcode sah ganz am Anfang so aus:
$verbindung = @mysql_connect($server,$login,$pass);
$passwort = md5($passwort);
$abfrage = "select * from shop_user where loginname='$username' AND passwort='$passwort'";
$erg = mysql_db_query($dbname,$abfrage,$verbindung);
$anz = mysql_num_rows($erg);
if ($anz > 0) {
$row = mysql_fetch_array($erg);
extract($row);
mysql_close($verbindung);
}
Nachdem ich dann festgestellt habe, dass der Abfrage-Befehl nicht mehr verwendet werden soll und ab 4.0.x veraltet sei, habe ich das Script wie folgt umgestellt, allderdings mit dem gleichen Ergebnis:
$verbindung = @mysql_connect($server,$login,$pass);
mysql_select_db ($dbname,$verbindung);
$passwort = md5($passwort);
$abfrage = "select * from shop_user where loginname='$username' AND passwort='$passwort'";
$erg = mysql_query($abfrage);
$anz = mysql_num_rows($erg);
if ($anz > 0) {
$row = mysql_fetch_array($erg);
extract($row);
mysql_close($verbindung);
}
Hat da einer eine Erklärung für??
Heisse sommerliche Grüße,
Tim
echo $begrüßung;
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Das ist ein Folgefehler.
$verbindung = @mysql_connect($server,$login,$pass);
...
$erg = mysql_db_query($dbname,$abfrage,$verbindung);
Frage nach MySQL-Befehlen die MySQL-Fehlermeldungen mit mysql_error() ab.
echo "$verabschiedung $name";
Hi,
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Das ist ein Folgefehler.
Hmm, bin ich mir nicht so sicher,
wenn ich mir Abfrage anzeigen lasse (echo $abfrage;)
Und die Abfrage mit dem phpmyadmin validiere, gibts ein korrektes und das erwartete Ergebnis.
Wenn ich die num_rows-Abfrage weglasse und davon ausgehe, das Ergebnis ist korrekt:
$abfrage = "select * from dcuser where loginname='$username' AND passwort='$passwort'";
echo "$abfrage<br>";
$erg = mysql_query($abfrage);
//$anz = mysql_num_rows($erg);
$anz = 1;
if ($anz > 0) {
$row = mysql_fetch_array($erg);
extract($row);
echo "Juhuu: $loginname, $passwort<br>";
}
Dann wird komischerweise loginname und passwort nicht angezeigt aber auch kein weiterer Fehler ??
Ich scheine auf dem Schlauch zu stehen, dabei könnte ich Wasser gut gebrauchen...
Tim
echo $begrüßung;
Ich scheine auf dem Schlauch zu stehen, dabei könnte ich Wasser gut gebrauchen...
Ich kann mich nur wiederholen: Frage bitte die MySQL-Fehlermeldungen nach dem Connect-Befehl mit mysql_error() ab.
Generell ist es sinnvoll, nach einem MySQL-Befehl (und nicht nur da) auch auszuwerten ob der geklappt hat und nicht einfach weiter im Text zu gehen. Beispielsweise gibt mysql_connect() bei nicht erfolgreichem Verbindungsaufbau ein false zurück, das du auswerten solltest. Das gleiche gilt für mysql_query().
echo "$verabschiedung $name";