Maison > base de données > tutoriel mysql > Comment puis-je insérer correctement des valeurs NULL dans une base de données MySQL à l'aide de PHP ?

Comment puis-je insérer correctement des valeurs NULL dans une base de données MySQL à l'aide de PHP ?

Susan Sarandon
Libérer: 2024-11-29 13:56:24
original
448 Les gens l'ont consulté

How Can I Properly Insert NULL Values into a MySQL Database Using PHP?

Insertion de valeurs nulles dans PHP/MySQL

Lors de l'insertion de données dans une base de données, il est essentiel de gérer correctement les valeurs nulles. Dans ce cas, nous souhaitons insérer null dans un champ de base de données si la valeur correspondante dans le tableau est également nulle.

Problème :

Considérez le code suivant :

$results = mysql_query("select * from mytable");
while ($row = mysql_fetch_assoc($results)) {
    mysql_query("insert into table2 (f1, f2) values ('{$row['string_field']}', {$row['null_field']});
}
Copier après la connexion

Lorsque l'une des valeurs null_field est nulle, l'instruction d'insertion échoue. En effet, PHP interprète null comme une chaîne vide, ce qui entraîne une erreur de syntaxe dans la requête SQL.

Solution :

L'approche recommandée pour gérer les valeurs nulles est utiliser des instructions préparées. Les instructions préparées font automatiquement la différence entre une chaîne nulle et une chaîne vide et insèrent la valeur correcte.

$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)");
$stmt->bind_param('ss', $field1, $field2);

$field1 = "String Value";
$field2 = null;

$stmt->execute();
Copier après la connexion

Les instructions préparées empêchent également les attaques par injection SQL en échappant les valeurs et en garantissant que la requête est correctement formatée. Par conséquent, il est recommandé d'utiliser mysqli et ses instructions préparées au lieu de l'extension mysql obsolète.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal