Moin!
ich will mit einem if Code prüfen, ob die beiden Felder $row['backupFrom'] und $row['backupUntil'] leer sind also NULL sind.
Leer? Oder NULL? Das ist nicht dasselbe!
Dazu habe ich folgenden Code geschrieben:
if ($row['backupFrom'] && $row['backupUntil'] == NULL) {....}
Vergleiche sind wie normale Rechenregeln (Punktrechnung vor Strichrechnung): Sie einfach nur sinnlos hintereinanderklatschen führt zu Murks.
"1 + 2 * 3" ist nicht das Gleiche wie "(1 + 2) * 3".
Und genauso ist es bei Vergleichen. Eine Übersetzung deines Satzes "ob die beiden Felder Null sind" ist außerdem noch notwendig. Welcher Fall soll denn nun abgedeckt werden: Beide sind gleichzeitig NULL, oder es reicht schon, wenn nur ein einziges NULL ist.
Dein bisheriger Code lautet: Verknüpfe die beiden Felder mit einem logischen UND und vergleiche dann mit dem Wert NULL.
Das führt dazu, dass der Inhalt der Felder zu einem Boolwert evaluiert wird (true oder false), dessen logische Verknüpfung gebildet wird (Ergebnis ist false, wenn mindestens eine der Einzelwerte false ist), und am Ende wird true oder false mit NULL verglichen, wobei NULL ebenfalls evaluiert wird zu false.
Eventuell klappt dein Versuch also, nur wird zwischendurch soviel Typkonvertierung betrieben, dass es höchst unwahrscheinlich ist, dass am Ende genau das rauskommt, was du erwartet hattest.
Die übliche Vorgehensweise, um bei Vergleichen nicht in Teufels Küche zu geraten: Alle Vergleiche schön in Klammern setzen, nichts unnötig zusammenfassen. Und Prüfungen auf den NULL-Wert werden in PHP mit der Funktion is_null() durchgeführt.
- Sven Rautenberg
"Love your nation - respect the others."