Rückgabewert bei Fehler?
Andre
- datenbank
0 Mega0 Andre0 Vinzenz Mai0 Andre
0 dedlfix0 EKKi- php
0 dedlfix0 Vinzenz Mai
Version (ka wo ich das nachschaue) 4.1.22-max-log
Gibt es eine Möglichkeit einen Rückgabewert zu bekommen, wenn ein query durchlaufen wird?
Also wenn er ohne Fehler / Probleme ausgeführt wurde gibt er z.B. true oder iwas zurück & wenn nicht, dann liefert er false oder dergleichen zurück?
Wäre lieb, wenn jemand eine Antwort darauf weiß und diese nennt. :)
Gibt es eine Möglichkeit einen Rückgabewert zu bekommen, wenn ein query durchlaufen wird?
Also zumindest bei PostgreSQL und MySQL ist es so, dass bei Erfolg die affected Rows angezeigt werden und bei einem Fehler eine entsprechende Meldung.
Da du ein Geheimis aus der gewünschten/verwendeten Datenbanksoftware machst, ist dummerweise keine konkrete Aussage möglich.
Und so nebenbei, eine Versionsnummer ist genauso aussagekräftig wie das Nummernschild über den Fahrzeugtypen.
Huhu,
ich rede von PHP bzw. SQL Datenbanken.
Hatte mich da wohl außerdem falsch ausgedrückt.
Beispiel:
Wenn ich jetzt eine Schleife ablaufen lasse, und z.B. eine Variable nicht definiert ist (weil vorher etwas schief gelaufen ist), aber genau diese Variable bei der WHERE - Klausel genutzt wird, dann kommt ja (zumindest bei mir) keine Fehlermeldung, sondern der query wird erst garnicht ausgeführt.
Darum auch die Frage, ob ich das Ganze nicht irgendwie noch einmal verschachteln kann und somit einen Rückgabewert habe um wenigstens entsprechende Meldungen anzeigen zu lassen.
Ich hoffe ich habe mich dieses Mal besser ausgedrückt^^
lG Andre
Hallo,
ich rede von PHP bzw. SQL Datenbanken.
Wenn ich jetzt eine Schleife ablaufen lasse, und z.B. eine Variable nicht definiert ist (weil vorher etwas schief gelaufen ist), aber genau diese Variable bei der WHERE - Klausel genutzt wird, dann kommt ja (zumindest bei mir) keine Fehlermeldung, sondern der query wird erst garnicht ausgeführt.
doch sicher, und MySQL wird mit einer Fehlermeldung reagieren. Da Du anscheinend die veralteten mysql_*-Funktionen verwendest, solltest Du im Anschluss an das Absetzen der Abfrage prüfen, was mysql_error() zu sagen hat.
Mein obligatorischer Hinweis: Verwende die verbesserte MySQL-Unterstützung mysqli. Dort erfährst Du MySQL-Fehlermeldungen über mysqli -> error().
Freundliche Grüße
Vinzenz
Ich danke dir vielmals :)
Werde ich gleich mal in die Tat umsetzen.
Liebe Grüße, Andre
echo $begrüßung;
ich rede von PHP bzw. SQL Datenbanken.
PHP ist einigermaßen klar umrissen, aber "SQL Datenbanken" nicht. Derer gibt es einige. Ich gehe mal von MySQL aus, weil deine Versionsnummer darauf passt.
Wenn ich jetzt eine Schleife ablaufen lasse, und z.B. eine Variable nicht definiert ist (weil vorher etwas schief gelaufen ist),
Variablenzuweisungen laufen im Allgemeinen nicht schief. Sorge auch bei bedingten Zuweisungen dafür, dass Variablen mit einem Default-Wert initialisiert sind, beispielsweise außerhalb des bedingten Programmteils.
aber genau diese Variable bei der WHERE - Klausel genutzt wird, dann kommt ja (zumindest bei mir) keine Fehlermeldung, sondern der query wird erst garnicht ausgeführt.
MySQL-Fehlermeldungen werden zunächst durch entsprechende Rückgabewerte der mysql_*-Funktionen signalisiert. Das musst du auswerten, bevor du fortfährst. Den genauen Wortlaut der Meldung bekommst du mir mysql_error().
Darum auch die Frage, ob ich das Ganze nicht irgendwie noch einmal verschachteln kann und somit einen Rückgabewert habe um wenigstens entsprechende Meldungen anzeigen zu lassen.
Im Prinzip muss man die weitere Abarbeitung abhängig machen vom:
echo "$verabschiedung $name";
Mahlzeit Andre,
ich rede von PHP bzw. SQL Datenbanken.
Dann hättest Du das schreiben sollen. Von PHP war in Deinem Ausgangsposting nicht die Rede.
Wenn ich jetzt eine Schleife ablaufen lasse, und z.B. eine Variable nicht definiert ist (weil vorher etwas schief gelaufen ist), aber genau diese Variable bei der WHERE - Klausel genutzt wird, dann kommt ja (zumindest bei mir) keine Fehlermeldung, sondern der query wird erst garnicht ausgeführt.
Wird schon - nur liefert die entsprechende PHP-Funktion dann einen Rückgabewert, der auf einen Fehler hindeutet. Den musst Du dann nur auswerten.
Darum auch die Frage, ob ich das Ganze nicht irgendwie noch einmal verschachteln kann und somit einen Rückgabewert habe um wenigstens entsprechende Meldungen anzeigen zu lassen.
Was meinst Du mit verschachteln? Du bekommst in jedem Fall einen Rückgabewert von den PHP-Datenbankfunktionen (welche nutzt Du?) - Du musst damit nur umgehen (können).
Ich hoffe ich habe mich dieses Mal besser ausgedrückt^^
Noch nicht wirklich. Wie wär's mit etwas Beispielcode?
MfG,
EKKi
echo $begrüßung;
Gibt es eine Möglichkeit einen Rückgabewert zu bekommen, wenn ein query durchlaufen wird?
Das kommt darauf an, in welchem Kontext du den Rückgabewert erwartest. Befindest du dich beispielsweise in einer Stored Procedure? Das können wir ausschließen, das konnte MySQL 4.1 noch nicht. Benutzt du die Funktionen der MySQL-API, geschrieben in C? Oder verwendest du andere Funktionen in anderen Umgebungen, PHP beispielsweise? Was sagt die Dokumentation der von dir verwendeten Funktion?
Also wenn er ohne Fehler / Probleme ausgeführt wurde gibt er z.B. true oder iwas zurück & wenn nicht, dann liefert er false oder dergleichen zurück?
Die MySQL-API-Funktion mysql_query() und mysql_real_query() liefern nur fehlerhaft oder fehlerfrei zurück. Über andere Funktionen erhält man die Ergebnismenge, die entweder gefüllt oder leer sein kann. Die Anzahl der Zeilen weißt du erst nach einer vollständigen Abfrage. Bei Daten verändernden Anweisungen kann man über mysql_affected_rows() die Anzahl der betroffenen Datensätze abfragen.
echo "$verabschiedung $name";
Die MySQL-API-Funktion mysql_query() und mysql_real_query() liefern nur fehlerhaft oder fehlerfrei zurück. Über andere Funktionen erhält man die Ergebnismenge, die entweder gefüllt oder leer sein kann. Die Anzahl der Zeilen weißt du erst nach einer vollständigen Abfrage. Bei Daten verändernden Anweisungen kann man über mysql_affected_rows() die Anzahl der betroffenen Datensätze abfragen.
Das nutze ich.
Bin noch ein totaler Anfänger, daher sind die Begriffe z.T. noch Neuland für mich.
Hab ich das also richtig verstanden, dass ich (wie im anderen Beitrag erwähnt) nicht abfrageb kann, ob die Schleife mit z.B. 3 querys auch wirklich komplett durchlaufen wurde, oder bezieht sich die Antwort auf meine Frage auf den oberen zitierten Teil? ^^
Vielen lieben Dank, das war schonmal eine große Hilfe :)
lG Andre
echo $begrüßung;
Die MySQL-API-Funktion mysql_query() und mysql_real_query() liefern nur fehlerhaft oder fehlerfrei zurück. Über andere Funktionen erhält man die Ergebnismenge, die entweder gefüllt oder leer sein kann. Die Anzahl der Zeilen weißt du erst nach einer vollständigen Abfrage. Bei Daten verändernden Anweisungen kann man über mysql_affected_rows() die Anzahl der betroffenen Datensätze abfragen.
Das nutze ich.
Eher nicht. Jedenfalls nicht direkt, wenn du PHP verwendest, da gibt es eigene Funktionen die zwischen dir und der MySQL-Client-API sitzen und teilweise anders reagieren als gleichamige Client-API-Funktionen.
Hab ich das also richtig verstanden, dass ich (wie im anderen Beitrag erwähnt) nicht abfrageb kann, ob die Schleife mit z.B. 3 querys auch wirklich komplett durchlaufen wurde, oder bezieht sich die Antwort auf meine Frage auf den oberen zitierten Teil? ^^
Bitte informiere dich zunächst im PHP-Handbuch über die von dir verwendeten Funktionen. Insbesondere solltest du stets wissen oder nachlesen, welches Ergebnis eine Funktion im Gutfall und was im Fehlerfall zurückliefert und daraufhin die Programmausführung entsprechend beeinflussen.
Bin noch ein totaler Anfänger, daher sind die Begriffe z.T. noch Neuland für mich.
Egal, ob du Anfänger bist oder mit den Fachbegriffen nur so um dich wirfst, beschreibe Probleme bitte so genau wie möglich, dass jemand anderes sie nachvollziehen kann. Das ist nicht immer leicht, doch letzlich beeinflusst das die Qualität der Antworten und ist damit deiner Problemlösung dienlich. Mitunter löst sich ein Problem wie von selbst, wenn man es nur genau genug zu beschreiben versucht.
echo "$verabschiedung $name";
Hallo,
Version (ka wo ich das nachschaue) 4.1.22-max-log
MySQL vermutlich :-)
Gibt es eine Möglichkeit einen Rückgabewert zu bekommen, wenn ein query durchlaufen wird?
den bekommst Du doch, wo ist das Problem?
Vielleicht schilderst Du deutlicher, wie Du auf Deinen Datenbankserver zugreifst, welche Ergebnisse Du erwartest und welche Du erhältst. Irgendeinen Client oder irgendeine API musst Du ja verwenden. Welche?
Freundliche Grüße
Vinzenz