MySQL-Fehler abfangen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL-Fehler abfangen

    Hallo!
    Ich benutze in meinen Scripten die folgende Funktion

    PHP-Code:
    function fetch($query)
    {
    //    echo $query;
        
    $link=mysql_query($query);
        
    $fehler=mysql_error();
        if (
    $fehler){
            
    mysql_query("INSERT INTO global_replies (message,colors) 
      VALUES ('
    $fehler','$query')");
        }
        return 
    mysql_fetch_array($link);
        

    immer dann, wenn die Ergebnissmenge höchstens eine Zeile haben soll. Leider tauchen in der Log auf dem Server vermehrt solche Fehler auf:

    [error] [client 217.227.248.58] PHP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/vhosts/domain.de/http/func.lib.php on line 7, referer: http://www.domain.de/battling/php-datei.php

    "func.lib.php on line 7" ist die Zeile $fehler=mysql_error(); in der obigen Funktion.
    Ich habe versucht den Fehler abzugreifen und in eine unbenutze Tabelle abzulegen. Leider werden keine Einträge gemacht, obwohl alle paar Minuten der Fehler auftaucht.

    Ist die Fehlerkontrolle falsch?

    Die Dateien, die im referer angegeben werden habe ich durchsucht und keine fehlerhaften Queries gefunden.
    Kann es sein, dass der Fehler auch dann kommt, wenn die Query keine Ergebnisse liefert?

    Kann mir mal einer erklären, was ich tun kann?

    MfG

    Alex

  • #2
    Überlegt doch mal, wenn beim Absetzen der Abfrage schon Fehler entsteht, woher willst du wissen, ob diw Verbindung zum Server keine Probleme hat, so dass du die Fehlermeldung in die DB doch schreiben kannst?

    Kommentar


    • #3
      Ich habe versucht den Fehler abzugreifen und in eine unbenutze Tabelle abzulegen.
      Die Prüfung wäre dann aber eher so
      PHP-Code:
      if($fehler != ''){ 
      Wenn du im Manual gelesen hättest was die möglichen Rückgabewerte von mysql_error() sind, wäre dir bestimmt aufgefallen, dass es auch ein Leerstring sein kann.
      Zum Rest kann ich nur sagen, dass asp2php recht hat und du so gar nicht wissen kannst ob der Fehler nicht schon beim Verbindungsversuch aufgetreten ist
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Verstehe.

        Wie kann ich den Fehler sonst abspeichern?
        Ich habe in der Anwendung über 100 Scripte und in der Log tauchen natürlich die am häufigsten (aber sporadisch) auf, die in der Anwendung am häufigsten gebraucht werden. Daher schließe ich auch den Bezug zu einer bestimmten Datei aus.

        Und wenn also kein einziger Eintrag erfolgt, kann ich davon ausgehen, dass es sich um fehlerhafte Verbindungen handelt?

        Wie kann es dann sein, dass von 10 Verbindungen eine nicht klappt? Ich stehe leider aufm Schlauch, bin noch ein blutiger Anfänger....

        Kommentar


        • #5
          lol, du bist ja lustig. und wenn bei dir der smtp-dienst ausfällt, lässt du dir ne mail schicken, oder wie?

          wie wärs denn, wenn du die mysql-fehler in eine log-datei schreibst?

          Kommentar

          Lädt...
          X