Überprüfen ob UPDATE erfolgreich war

ASD20054

Mitglied
Hallo,

ich benutze die Mysql Klasse von BehindTheScenes aus diesem Beitrag http://www.tutorials.de/forum/php/257045-php-mysql-mysql-klasse.html. Nun meine Frage, Wie kann ich überprüfen ob UPDATE,DELETE,INSERT erfolgreich war?
Hier mal so wie ich es schon probiert habe aber noch nicht wirklich funktioniert, dass heißt das ich immer nicht erfolgreich als Fehlermeldung bekomme.
PHP:
$db->query("UPDATE usertable SET mode='2' WHERE username='ASD'");
if($db->num_rows() != 0)
  echo "erfolgreich"; 
else
  echo "nicht erfolgreich";
 
Das Problem bei dieser Klasse ist dass sie keine Möglichkeit bietet die betroffenen Datensätze auszulesen. Bei einem Select bekommst du über mysql_num_rows die Anzahl an Datensätzen. Und bei einem Update musst du mysql_affected_rows (betroffene Zeilen) Abfragen um die Anzahl an Datensätze zu überprüfen. Ich hab dir mal ne Methode geschrieben welche das erledigen sollte. Einfach in die Klasse hinzufügen und verwenden.
PHP:
//::::: affected_rows ::::::
    function affected_rows($query = 0)
    {
        if($query == 0)
        {
            if(@$this->result = mysql_affected_rows($this->query)
            {
                return $this->result;
            }
        }
        else
        {
            if (@$this->result = mysql_affected_rows($query))
            {
                return $this->result;
            }
        }
    }
 
Hallo,

danke für deine Antwort, hab affected_rows mal dazugefügt aber scheint wohl auch nicht zu funktionieren. Der Eintrag in der Datenbank wird geändert aber Ich bekomme immer noch "nicht erfolgreich" als Fehlermeldung.
Mach ich vieleicht in der if Abfrage was falsch?
PHP:
$db->query("UPDATE usertable SET mode='2' WHERE username='ASD'");
if($db->affected_rows > 0)
  echo "erfolgreich"; 
else
  echo "nicht erfolgreich";
 
Nabend

Ob das jetzt nur mit $db funktioniert, weis ich nicht.
PHP:
echo (!$db) ? "erfolgreich" : "nicht erfolgreich";

Ansonsten
PHP:
$daten = $db->query("UPDATE...")
echo (!$daten) ? "erfolgreich" : "nicht erfolgreich";
 
Da ist was falsch in deiner Abfrage: affected_rows ist ne Methode. Du greifst auf ein nicht vorhandenes Attribut zu. Probier mal das:
PHP:
$db->query("UPDATE usertable SET mode='2' WHERE username='ASD'");
if($db->affected_rows() > 0)
  echo "erfolgreich"; 
else
  echo "nicht erfolgreic
 
Hallo,

irgendwie will es nicht funktionieren, ich bekomme andauern "nicht erfolgreich" angezeigt. Ich habe die () noch dazugefügt, aber trotzdem funktionierts immer noch nicht. :confused:
 
Zurück