Bonjour, afin de mieux comprendre l'insertion d'un null je fait un test simples
je travail sur cette table qui est très simple
table personnes
----------------
id_perso | nom
dans phpmyadmin j'ai cliquer sur la case "null", je suppose que cela interdit d'enregister quelque chose qu'il n'existe pas
j'ai donc executer cette requête
insert into personnes(nom) value (null)
jusqu'a là pas de problème ,j'ai un erreur
#1048 - Column 'nom_fam' cannot be null
maintenant j'ai essayer ceci
insert into(personnes(nom)value('')
Identifiant de la ligne insérée : 6 ( Traitement en 0.0517 sec. )
donc là je suppose que
echo ''
est vide mais pas null
ma question est , lorque fait un requête avec PHP si par exemple je ne remplis l'un des champs
commmnent va t'il envoyer à mysql quelque chose de vide ?
$nom = $_POST['name']
$sql = "insert into personnes (nom)value ($nom)";
si je ne fait pas de test d'exsistance,
$nom sera "NULL" ou "vide"?
pour éviter toute ambiguité , faut t'il à chaque fois faire
if($nom = '')
{
$nom = NULL;
}
merci d'avance de votre réponse
projet de création domotique avec beaglebone avec nodejs
Moi j'ai toujours eu un problème avec empty, par exemple si on met que des espaces dans un champs, et bien la variable ne sera plus considérée comme empty il me semble.
question perfomance,
faut t'il mieux indiquer que si la champs et vide par php qu'il sera égale à NULL
ou faut t'il mieux du coté mysql de dire que s'il y a un champs vide (nom reseigné cette fois ci) mettre NULL ou NC par exemple dans l'option
"default" (ne n'ai jamais encore utiliser tel que défnit, mais je suppose que si je met nc ca remplir le champs "nc")
table
id_perso|nom|prenom
//je n'indique pas le nom
select into personnse(prenom)value('toto')
projet de création domotique avec beaglebone avec nodejs
si on veux niveau performance il faut que coche la case "null"
et que dans tous le code php, je doit mettre a chaque fois qu'il n'y a pas de réponse
-soit obligé au users de remplire le champs d'un formulaire par exemple
-soit de mettre une donnée d'office si on n'a pas remplis un champs
if(empty($_POST['nom'))
{
echo "vos devez remplir le champs nom";
//redirection
}
if(empty($_POST['prenom_2"]))
{
$_POST['prenom_2'] = "inconnu";
}
plutôt que accepter un valeur null et la mettre dans la base de donnnée
<code>
//accepter de mettre dans le champs prenom_2 la valeur null
insert into personnes (nom,prenom,prenom_2)value('toto','tata','null');
projet de création domotique avec beaglebone avec nodejs
Niveau perf je ne pense pas que ça influe quelque chose, par contre mettre NULL je trouve plus approprié que "inconnu" étant donné que n'importe qui peut mettre "inconnu" comme nom.
Et le fait d'obliger de remplir un champs ou pas c'est toi qui voit.
projet de création domotique avec beaglebone avec nodejs
interdire d'inserer un requete avec un champ vide
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tutoriel complet MySQL !
Tutoriel complet MySQL !