Jörg Reinholz: [MySQL 4.0] Problem mit UPDATE-Query

Beitrag lesen

echo "<p>Query = ".$query."</p>";  

$result = mysql_query($query);
dberror();
echo "Ihre Eingabe war korrekt und wurde in die Datenbank eingetragen!";
$db = mysql_close();
dberror();


>   
> dberror() ist definiert wie folgt:  
>   
> ~~~php

  function dberror()  

>   {  
>     if (mysql_errno())  
>     {  
>       switch(mysql_errno())  
>       {  
> 	case 1062:  
> 	  die ("Ein Eintrag mit diesen Daten existiert bereits! Bitte korrigieren Sie Ihre Eingabe!<br>");  
> 	break;  
> 	default:  
> 	  die (mysql_errno().": ".mysql_error()."<br>");  
>       }  
>     }  
>   }  
> 

Review:


> 	$db = mysql_close();  

Du schließt also die Verbindung bevor Du


> 	dberror();  

aufrufst und darin dann mysql_errno() und mysql_error(). Was soll das bringen? In der Dokumentation steht zu den Parametern:

Zitat:

Verbindungs-Kennung:

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Wenn die Verbindung gelöst wird, dann ist auch die letzte Fehlernummer und ~Meldung im Orkus.

Korrektur:

$result = mysql_query($query) or dberror( mysql_errno(), mysql_error(), $query );  

wäre besser, denn dann kannst Du in Deiner Funktion alles auswerten.

function dberror($mysqlErrNo, $mysqlError, $query)  
  {  
    if ($mysqlErrNo)  
    {  
      switch($mysqlErrNo)  
      {  
        case 1062:  
          die ("Ein Eintrag mit diesen Daten existiert bereits! Bitte korrigieren Sie Ihre Eingabe!<br>");  
        break;  
        default:  
          die ($mysqlErrNo.": ".$mysqlError."<br>Query war: <pre>".$query."<pre>");  
      }  
    }  
  }

Besser wäre statt des 'die ($mysqlErrNo.": ".$mysqlError."<br><pre>".$query."<pre>");' einen Fehler zu triggern.

trigger_error('Von Dir gebauter Text', E_USER_ERROR);  

... wäre Dein Freund. Kombiniere das mit mit meiner use-strict-Lösung.

Jörg Reinholz

0 66

[MySQL 4.0] Problem mit UPDATE-Query

Yadgar
  • datenbank
  1. 0
    Jörg Reinholz
    1. 0
      Yadgar
      1. 0
        Jörg Reinholz
        1. 1
          Jörg Reinholz
  2. 1
    M.
    1. 0
      Yadgar
      1. 0
        Jörg Reinholz
        1. 0
          Yadgar
          1. 0
            1UnitedPower
            1. 0
              Yadgar
              1. 0
                Jörg Reinholz
                • php
                1. 0

                  PHP und undefinierte Konstanten

                  1UnitedPower
                2. 1
                  Jörg Reinholz
                3. 0
                  Yadgar
                  1. 0
                    Jörg Reinholz
                  2. 0
                    Auge
                    1. 0
                      Jörg Reinholz
                      1. 0
                        Auge
                        1. 0
                          ChrisB
                        2. 0
                          Yadgar
                          1. 0
                            Auge
                            1. 0
                              Yadgar
                          2. 0
                            Jörg Reinholz
                            1. 0
                              Yadgar
                              1. 0
                                Jörg Reinholz
                                1. 0
                                  M.
                                  1. 0
                                    Jörg Reinholz
                                2. 0
                                  Yadgar
                                  1. 0
                                    M.
                                    1. 0
                                      Yadgar
                                      1. 0
                                        M.
                                        1. 0
                                          Yadgar
                                          1. 0
                                            Jörg Reinholz
                                            1. 0
                                              Yadgar
                                              1. 0
                                                Jörg Reinholz
                                                1. 0
                                                  Yadgar
                                                  1. 0
                                                    M.
                                                  2. 0
                                                    Jörg Reinholz
                                                    1. 0
                                                      M.
                                              2. 0
                                                M.
                                                1. 0
                                                  Yadgar
                                                  1. 0
                                                    M.
                                                    1. 0
                                                      Yadgar
                                                      1. 0
                                                        M.
                                                        1. 0
                                                          Yadgar
                                                        2. 0
                                                          Yadgar
                                                          1. 0
                                                            M.
                                                  2. 0
                                                    Jörg Reinholz
                                      2. 0
                                        Jörg Reinholz
                                        1. 0
                                          M.
                                  2. 0
                                    Jörg Reinholz
                                    1. 0
                                      Yadgar
                            2. 0
                              Yadgar
                              1. 0
                                M.
                                1. 0
                                  Yadgar
                            3. 0
                              Yadgar
                              1. 0
                                M.
                                1. 0
                                  Yadgar
                                  1. 0
                                    M.
                              2. 0
                                Jörg Reinholz
                      2. 0
                        Yadgar
          2. 0
            Jörg Reinholz
            1. 0
              Yadgar
              1. 0
                Jörg Reinholz
      2. 0
        ChrisB