Code: Select all
class User
{
public id;
public name;
public surname;
public gender;
public age;
}
< /code>
In meinem Code möchte ich eine dynamische Aktualisierungsanweisung für ein solches Objekt gemäß den festgelegten Eigenschaften erstellen. [url=viewtopic.php?t=14917]Ich möchte[/url] also, dass mein Update auf (Übertragung in die Datenbank) und nur Spalten geändert wird, die geändert wurden. Wenn eines der Eigenschaften des Benutzers nicht festgelegt ist, sollte diese Eigenschaft nicht als DB -Spalte in der Aktualisierungsanweisung aufgenommen werden.
Wenn ich beispielsweise das Objekt des Benutzer
Code: Select all
age
$User=new User();
$User->id=1;
$User->name='Bob';
$User->surname='Geldof';
< /code>
Aus diesem Objekt sollte mein Code eine Aktualisierungsanweisung wie folgt erstellen: < /p>
UPDATE users SET name='Bob',surname='Geldof' WHERE id=1
< /code>
Das Problem ist, wenn eine Spalte in der Datenbank Nullwerte haben kann (wie zum Beispiel Alter < /code>). In diesem Fall sollte ich in der Lage sein, diese Spalte in der Datenbank zu null. Dort sollte ich prüfen, ob die Eigenschaft der Benutzerobjekte explizit auf NULL eingestellt ist. Wenn es auf NULL eingestellt ist, sollte die Aktualisierungsanweisung mit: < /p>
zurückzuführen seinUPDATE users SET name='Bob',age=NULL WHERE id=1
< /code>
Es gibt jedoch keine Möglichkeit zu testen, ob die Eigenschaft festgelegt ist, aber auf Nullwert eingestellt ist! auf den NULL -Wert einstellen (nicht 'NULL' String)?