Hallo! Wenn ich unter php mysql_query( ...) ausführen lasse und dabei ein Fehler in dem SQL Ausdruck vorherrscht so geht php kommentarlos darüber hinweg (und mysql führt die query nicht aus). Kann ich da irgendwie eine "Erfolgsmeldung" bekommen? lg Martin
am 30.09.2002 schrieb: Martin Hochreiter
Hallo!
Wenn ich unter php mysql_query( ...) ausführen lasse und dabei ein .... mysql führt die query nicht aus). Kann ich da irgendwie eine "Erfolgsmeldung" bekommen?
Du kannst immer eine Erfolgsmeldung erzeugen $result = mysql_query($query); if ($result == 0) => Warscheinlich Fehler else => Verarbeiten Einzige Gefahr, der Query ist richtig, aber es sind keine Daten vorhanden, nicht vorhandene Daten kann man aber auch nicht verarbeiten, was auf jedem Fall zu einem Fehler führt. MfG Markus
Hallo! Am Mon, 2002-09-30 um 14.20 schrieb info:
am 30.09.2002 schrieb: Martin Hochreiter
Wenn ich unter php mysql_query( ...) ausführen lasse und dabei ein .... mysql führt die query nicht aus). Kann ich da irgendwie eine "Erfolgsmeldung" bekommen?
Du kannst immer eine Erfolgsmeldung erzeugen
$result = mysql_query($query); if ($result == 0) => Warscheinlich Fehler else => Verarbeiten
Einzige Gefahr, der Query ist richtig, aber es sind keine Daten vorhanden, nicht vorhandene Daten kann man aber auch nicht verarbeiten, was auf jedem Fall zu einem Fehler führt.
Es gibt mysql_error(), um sich Fehler anzeigen zu lassen. Das bleibt leer, wenn es keinen Fehler gegeben hat. Sonst steht da der mySQL-Fehlertext drin... Viele Grüße Henning
Hallo Martin
Kann ich da irgendwie eine "Erfolgsmeldung" bekommen?
Klar kannst Du, sollst Du auch: z.b. bei einem SELECT: $result=mysql_query($sql); if(!$result) { // ist die Abfrage schiefgegangen, dann haben wir ein false die("Da iss folgendes schiefgegangen: ".mysql_errno().":".mysql_error()) // mit diesen beiden Funktionen findest Du raus, welcher Fehler passiert ist. } elseif(mysql_num_rows($result)==0) { // haben wir hier 0, dann waren keine Daten da echo"Sorry, keine Datensätze vorhanden"; } else { ... losgeht's mit auswerten... Bei einem INSERT geht das genau so. BTW. mit mysql_affected_rows() kannst Du sogar noch fragen, wieviele Datensätze von der Abfrage betroffen waren. Und wenn Du ein INSERT über mehrere Tabellen machst, kannst Du mit mysql_insert_id() fragen, welche ID der Datensatz des letzten INSERTs gekriegt hat (praktisch bei auto_increment Tabellen). Lies einfach mal ein bisschen auf www.php.net im manual rum. Damit kommt man gut über die Runden. http://www.php.net/manual/de/function.mysql-query.php Weiter kann ich den Gebrauch der DB-Klasse aus PEAR empfehlen. Grüsse Michael
participants (4)
-
Henning Weier
-
info
-
Martin Hochreiter
-
Michael Rolli