So prüfen Sie ordnungsgemäß auf NULL-Werte in PHP
Bei der Arbeit mit Datenbankergebnissen ist es wichtig, genau auf NULL-Werte zu prüfen, um unbeabsichtigte Ergebnisse zu vermeiden Ergebnisse. Ein häufiges Szenario, in dem dies auftritt, ist das Rendern von HTML-Elementen basierend auf dem Vorhandensein oder Fehlen von NULL-Werten.
Betrachten Sie den folgenden PHP-Code:
<code class="php">$query = mysql_query("SELECT * FROM tablex"); if ($result = mysql_fetch_array($query)){ if ($result['column'] == NULL) { print "<input type='checkbox' />"; } else { print "<input type='checkbox' checked />"; } }</code>
In diesem Beispiel versucht der Code dies Zeigt ein aktiviertes Kontrollkästchen an, wenn das Feld „Spalte“ in der abgefragten Zeile nicht NULL ist. Auch wenn das Feld „Spalte“ nicht NULL ist, bleibt das angezeigte Kontrollkästchen deaktiviert. Dieses Verhalten mag unerwartet erscheinen.
Um dieses Problem zu beheben, müssen wir einen Operator verwenden, der explizit nach NULL-Werten sucht. Der ==-Operator prüft auf strikte Gleichheit, d. h. Typ und Wert müssen übereinstimmen. Allerdings wird in diesem Fall der Wert mit der Literalzeichenfolge „NULL“ verglichen, was immer zu einem falschen Vergleich führt.
Um korrekt auf NULL-Werte zu prüfen, können Sie eine der folgenden Methoden verwenden:
1. is_null() Funktion:
<code class="php">is_null($result['column'])</code>
2. === Operator:
<code class="php">$result['column'] === NULL</code>
Beide Methoden prüfen genau auf NULL-Werte und ermöglichen Ihnen, das aktivierte Kontrollkästchen wie vorgesehen anzuzeigen, wenn das Feld nicht NULL ist.
Denken Sie daran, dass es bei der Suche nach NULL-Werten wichtig ist, Operatoren zu verwenden, die speziell auf diese Bedingung testen, wie z. B. is_null() oder ===, um Fehlinterpretationen zu vermeiden.
Das obige ist der detaillierte Inhalt vonWarum funktioniert der Vergleich eines Datenbankwerts mit „NULL“ in PHP nicht wie erwartet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!