Maison  >  Article  >  base de données  >  Comment puis-je stocker de vraies valeurs NULL dans les instructions préparées MySQLi ?

Comment puis-je stocker de vraies valeurs NULL dans les instructions préparées MySQLi ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 17:55:29284parcourir

How Can I Store True NULL Values in MySQLi Prepared Statements?

Stockage de vraies valeurs NULL dans les instructions préparées MySQLi

Dans une instruction préparée dans MySQLi, le comportement par défaut d'une valeur NULL est de la convertir à une chaîne vide ('') dans le cas d'une chaîne ou à 0 dans le cas d'un entier. Cependant, si vous préférez conserver la valeur NULL, vous pouvez adopter une approche spécifique.

Utilisation de l'opérateur MySQL NULL Safe

Pour stocker un vrai NULL dans une instruction préparée par MySQLi, vous devez utiliser l'opérateur sécurisé MySQL NULL :

<=>

Cet opérateur garantit qu'une colonne est comparée pour l'égalité ou la non-égalité à NULL. Par exemple :

$price = NULL; // Note: Using php NULL without quotes
$stmt = $mysqli->prepare("SELECT id FROM product WHERE price &lt;=&gt; ?"); // Selects products with NULL prices
$stmt->bind_param($price);

Dans cet exemple, la requête récupérera les produits dont la colonne prix est NULL. Sans l'opérateur de sécurité NULL, la requête n'aurait renvoyé aucun résultat, car NULL n'est pas égal à une chaîne vide ou à 0.

Exemple

Le code PHP suivant démontre comment utiliser l'opérateur de sécurité NULL dans une instruction préparée :

$firstName = NULL;
$lastName = "Doe";

$stmt = $mysqli->prepare("UPDATE users SET first_name &lt;=&gt; ?, last_name = ?");
$stmt->bind_param("ss", $firstName, $lastName);
$stmt->execute();

Cette requête mettrait à jour l'utilisateur avec le nom de famille spécifié et conserverait la valeur NULL pour le prénom.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn