# Überprüfen ob UPDATE erfolgreich war



## ASD20054 (3. November 2007)

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.

```
$db->query("UPDATE usertable SET mode='2' WHERE username='ASD'");
if($db->num_rows() != 0)
  echo "erfolgreich"; 
else
  echo "nicht erfolgreich";
```


----------



## Danielku15 (3. November 2007)

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. 

```
//::::: 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;
            }
        }
    }
```


----------



## ASD20054 (3. November 2007)

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?

```
$db->query("UPDATE usertable SET mode='2' WHERE username='ASD'");
if($db->affected_rows > 0)
  echo "erfolgreich"; 
else
  echo "nicht erfolgreich";
```


----------



## bUTschy (3. November 2007)

Nabend

Ob das jetzt nur mit $db funktioniert, weis ich nicht.

```
echo (!$db) ? "erfolgreich" : "nicht erfolgreich";
```

Ansonsten

```
$daten = $db->query("UPDATE...")
echo (!$daten) ? "erfolgreich" : "nicht erfolgreich";
```


----------



## Danielku15 (4. November 2007)

Da ist was falsch in deiner Abfrage: affected_rows ist ne Methode. Du greifst auf ein nicht vorhandenes Attribut zu. Probier mal das:

```
$db->query("UPDATE usertable SET mode='2' WHERE username='ASD'");
if($db->affected_rows() > 0)
  echo "erfolgreich"; 
else
  echo "nicht erfolgreic
```


----------



## ASD20054 (4. November 2007)

Hallo,

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


----------

