8791 sujets

Développement web côté serveur, CMS

Attention question de "super débutant" Smiley langue
Dans une table MySQL, la colonne Null avec la valeur not null implique-t-il que le champ ne peut pas être vide ?
C'est ce que je croyais, jusqu'à ce une j'insère une donnée directement dans ma base MySQL en laissant ce champ vide sans avoir d'erreur !
Modifié par krakkos (06 Jul 2009 - 11:21)
Comme je l'ai précisé en début de message, je suis "super débutant" avec MySQL. De ce fait ta réponse, certainement judicieuse, me laisse dans un océan de perplexité !
Qu'est ce que cela veut dire ?
Ca veut dire que la valeur NULL est différente de la valeur vide. NULL n'est pas vide. Vide n'est pas NULL.
Même quand tu essaies de comparer en SQL la syntaxe est différente :

WHERE `ton_champ` = ''     # Teste si ton champ est vide
WHERE `ton_champ` IS NULL  # Teste si ton champ est NULL

Modifié par Agylus (06 Jul 2009 - 09:33)
Merci pour tes précisions.
Question complémentaire de "super débutant" : à quoi correspond la valeur null ?
Merci pour ta réponse.
Mais je ne saisie pas bien la différence entre vide et pas de valeur (null)
Un des moyens de faire la différence est de faire un traitement PHP sur tes champs.

Exemple :

Table `ma_table` :
   `id`     `valeur`
    1          
    2         [i]NULL[/i]


$sql = 'SELECT * FROM `ma_table`';
$res = mysql_query( $sql );

while ( $data = mysql_fetch_assoc( $res ) )
{
   if ( isset( $data['valeur'] ) )
   {
      echo $data['id'];
   }
}

// Sortie : 1
// Et non pas 12
@ Agylus : ta réponse par un exemple de programmation me laisse perplexe !
Ne peut-on pas trouver une explication textuelle ?