Heim  >  Artikel  >  Datenbank  >  Warum funktioniert der Vergleich eines Datenbankwerts mit „NULL“ in PHP nicht wie erwartet?

Warum funktioniert der Vergleich eines Datenbankwerts mit „NULL“ in PHP nicht wie erwartet?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 08:47:27829Durchsuche

Why Does Comparing a Database Value to

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn