Bonjour,
Sachant que ta requête est actuellement construite comme ceci :
//$id="\N"; ne semble pas obligatoire
$nom=$_POST["nom"];
$prenom=$_POST["prenom"];
$mail=$_POST["mail"];
//requêtes
$requete="INSERT INTO personne VALUES('$id','$nom','$prenom','$mail')";
Cela signifie que ta requête, vue par MySQL, donnera quelquechose comme :
INSERT INTO personne VALUES('valeur_id','valeur_nom','valeur_prenom','valeur_mail')
En imaginant que tu n'aies rien mis dans le champ mail de ton formulaire, cela devient :
INSERT INTO personne VALUES('valeur_id','valeur_nom','valeur_prenom','')
Et ce n'est pas bon car ça donne une chaîne vide (délimitée par deux apostrophes successives), et pour mysql une chaîne vide est une valeur comme une autre. Pour déclencher le remplissage du champ avec la valeur par défaut, il y a deux façons de faire, au choix :
- Envoyer à mysql un NULL au lieu d'une chaîne vide (c'est le plus facile à faire par rapport à ton code). Il y a une condition pour que ça marche cependant : il faut que ton champ soit déclaré de type NOT NULL.
- Ne pas inclure le champ dans la liste des champs à remplir à l'insertion, cad dans la première partie de la requête insert. Cette seconde option est un peu plus lourde à gérer pour toi. Néammoins c'est la seule possibilité si ton champ est de type NULL.
Est-ce que tout ça te parle un peu ?
