MySql 4.20 auf 4.114
Jo
- datenbank
Hallo Leute,
habe einen Webshop und seit es auf 4.114 aktualisiert wurde bekomme ich auf der Anmeldeseite folgende Warnung
############
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usalubaq/www.usanutritionstore.at/DE/formular.php on line 291
############
In Zeile 291 steht
################
289##$stat_kunde = "SELECT * FROM Kunden WHERE id='".$_SESSION["kundenid"]."'";
290##$result_kunde = mysql_query($stat_kunde, $dblink);
291##if( $row_kunde = mysql_fetch_array($result_kunde) ) {
292## $txtfirma = $row_kunde['firma'];
293## $txtanrede = $row_kunde['anrede'];
usw....
#######
Weiß jemand was ich da ändern muss?
Danke schon mal für jede Hilfe
Gruß Jo
Hi,
Weiß jemand was ich da ändern muss?
Ja, dein Fehlerbehandlungskonzept. Soll heißen: Irgendwo vorher ist dir ein Fehler durchgegangen, vermutlich eine fehlgeschlagene Verbindung. Die Datenbankbefehle solltest du immer in etwa so einsetzen:
$connection = mysql_connect(...) or die("Fehler bei der Datenbankverbindung");
MfG
Rouven
echo $begrüßung;
$connection = mysql_connect(...) or die("Fehler bei der Datenbankverbindung");
Und welcher Fehler aufgetreten ist interessiert wohl nicht? Die Ausgabe von mysql_error() sollte schon noch irgendwohin stattfinden.
Außerdem empfiehlt es sich immer, sich über die (teilweise inkompatiblen) Änderungen in den neueren Versionen zu informieren:Upgrading from Version 4.0 to 4.1.
echo "$verabschiedung $name";
Hi,
Und welcher Fehler aufgetreten ist interessiert wohl nicht? Die Ausgabe von mysql_error() sollte schon noch irgendwohin stattfinden.
*Räusper* ja, genau meine Meinung, das Problem ist, ich hab seit 2 Jahren keine Zeile PHP mehr geschrieben und bin mir immer nicht sicher wie die Befehle heißen.
Rouven
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usalubaq/www.usanutritionstore.at/DE/formular.php on line 291
mysql_fetch_array() erwartet ein Array. Wenn kein Resultat aus der Abfrage kommt, gibt es auch kein Array!
Prüfe also vorher auf ein vorhandenes Array:
if (mysql_num_rows($result_kunde) > 0) {
...dann erst weiter...
} else {
...Fehler...
}
Nur mal so nebenbei: Wenn das der Anmeldebereich ist, wie kann dann bereits eine "Userid" vorhanden sein?
Gruß,
Stevie B.
echo $begrüßung;
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usalubaq/www.usanutritionstore.at/DE/formular.php on line 291
mysql_fetch_array() erwartet ein Array. Wenn kein Resultat aus der Abfrage kommt, gibt es auch kein Array!
Nein, es erwartet kein Array sondern eine Ressource.
Prüfe also vorher auf ein vorhandenes Array:
if (mysql_num_rows($result_kunde) > 0) {
Auch mysql_num_rows() erwartet eine Ressource. So kommst du nur vom Regen in die Traufe. Und nein, ein vorangestelltes @ ist nicht die Lösung.
Die richtige Lösung ist, im Handbuch nachzulesen, was die Funktionen im Gut- und im Fehlerfall zurückgeben und auf diese Unterschiede zu reagieren.
echo "$verabschiedung $name";