Hi!
Bei der Ausgabe von Datensätzen aus einer MYSQL-Datenbank ist bei jedem Datensatz dessen Löschung möglich. Die entsprechende ID wird mit der URL an jene php-Ressource, die für die Löschung des Datensatzes zuständig ist, übergeben.
Nachdem ich geprüft habe, ob es einen Datensatz mit der entsprechenden ID überhaupt gibt, wird dieser gelöscht. Das habe ich so realisiert:
// Die Verbindung zur DB wird hergestellt:
include('db_connect.php');
// Der Datensatz mit der übergebenen und überprüften ID wird gelöscht:
$loeschung=$db->query("DELETE FROM `11_dbtest` WHERE `id`=$id");
// Die Verbindung zur DB wird geschlossen:
include('db_disconnect.php');
Soweit funktioniert das auch. Nun dachte ich, es sei gut, codeseitig zu kontrollieren, ob es zu einer Löschung gekommen ist. Dazu habe ich nach dem $loeschung=$db->query...
Folgendes hinzugefügt:
// Überprufung, ob der Datensatz gelöscht worden ist:
if($loeschung->affected_rows==1)
{
echo"<p>Löschung erfolgreich.</p>\n";
}
else
{
echo"<p>Löschung nicht erfolgreich.</p>\n";
}
Leider bekomme ich da immer den Warnhinweis "Notice: Trying to get property of non-object in ... on line ..." (die entsprechende Zeile ist jene mit der if-Klausel) sowie die Ausgabe "Löschung nicht erfolgreich". Und das, obwohl der Datensatz _sehr wohl_ wie gewünscht gelöscht wird.
Kann mir bitte wer sagen, was an meinem Code da nicht stimmt, dass es zu dieser Warnung kommt? Beim objektorientierten Beispiel unter mysqli->affected_rows im php-Handbuch wird es doch auch so gemacht, wie ich es getan habe. =/
Danke!
Onkel Hans