Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1455 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mysql] Laisser une valeur null par défaut ou non?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[mysql] Laisser une valeur null par défaut ou non?

n°326083
fbtheretur​n
Posté le 07-03-2003 à 15:33:36  profilanswer
 

voila, particulièrement pour mysql,  
est ce qu'on a interet à mettre pour un champ
varchar(15) NOT NULL default '',
ou
int NOT NULL default '0',
 
ou bien laisser NULL comme valeur par défaut?
 
qu'elle pourrait etre les différentes utilités? s'il y en a?
 

mood
Publicité
Posté le 07-03-2003 à 15:33:36  profilanswer
 

n°326286
bozocarzu
Posté le 07-03-2003 à 18:38:11  profilanswer
 

sa depend se que tu veut faire avec ta table, sa peut etre utile des fois qu'un champs soit null, sa depend vraiment de se que tu veut en faire

n°326418
mrbebert
Posté le 07-03-2003 à 22:11:02  profilanswer
 

J'ai tendance à essayer d'éviter les champs NULL, sauf si ca représente réellement quelque chose.
 
Sinon, tu te retrouve avec des problèmes au moment de traiter les résultats des requêtes, comme par exemple, faire la distinction entre '' et NULL en php ou autre :/

n°326546
the real m​oins moins
Posté le 08-03-2003 à 01:31:37  profilanswer
 

mrBebert a écrit :

J'ai tendance à essayer d'éviter les champs NULL, sauf si ca représente réellement quelque chose.
 
Sinon, tu te retrouve avec des problèmes au moment de traiter les résultats des requêtes, comme par exemple, faire la distinction entre '' et NULL en php ou autre :/  

le truc c'est que justement, '' et NULL c'est pas la meme chose :sarcastic:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°326590
mrbebert
Posté le 08-03-2003 à 11:55:31  profilanswer
 

the real moins moins a écrit :

le truc c'est que justement, '' et NULL c'est pas la meme chose :sarcastic:

C'est bien ca le problème. C'est pas pareil, mais quand quand tu fais un mysql_fetch_array de ton résultat en PHP, tu perds cette info.
Dans les 2 cas, ($r['champ'] == "" ) est évalué à vrai :/

n°326616
drasche
Posté le 08-03-2003 à 13:49:04  profilanswer
 

[:blueflag]
 
la question m'intéresse, et pour le moment j'ai tendance à éviter les null également.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°326620
the real m​oins moins
Posté le 08-03-2003 à 14:05:11  profilanswer
 

mrBebert a écrit :

C'est bien ca le problème. C'est pas pareil, mais quand quand tu fais un mysql_fetch_array de ton résultat en PHP, tu perds cette info.
Dans les 2 cas, ($r['champ'] == "" ) est évalué à vrai :/  

=== NULL, qqchose comme ça
edit: bon pour le === je sais pas trop, à tester. sinon:
http://www.php.net/manual/en/language.types.null.php
http://www.php.net/manual/en/function.is-null.php


Message édité par the real moins moins le 08-03-2003 à 14:10:50

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°326705
mrbebert
Posté le 08-03-2003 à 19:04:34  profilanswer
 

T'es sur que le NULL du SQL est le même que le NULL de PHP ? J'ai un très gros doute :heink:

n°326891
urd-sama
waste of space
Posté le 08-03-2003 à 23:00:49  profilanswer
 

si ca peut faire avancer l'histoire, en asp on a une commande pour tester la "nullité" (mouarf) d'un champ
IF IsNull(rs("champ" ) THEN
y'a pas d'équivalent en php?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°326900
the real m​oins moins
Posté le 08-03-2003 à 23:05:55  profilanswer
 

Urd-sama a écrit :

si ca peut faire avancer l'histoire, en asp on a une commande pour tester la "nullité" (mouarf) d'un champ
IF IsNull(rs("champ" ) THEN
y'a pas d'équivalent en php?
 

ben si je l'ai donné y'a qques posts là ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 08-03-2003 à 23:05:55  profilanswer
 

n°326901
the real m​oins moins
Posté le 08-03-2003 à 23:06:23  profilanswer
 

bon comme j'ai rien à foutre et que mon serveur est allumé je vais tester pour vous  :sarcastic:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°326903
urd-sama
waste of space
Posté le 08-03-2003 à 23:07:16  profilanswer
 

the real moins moins a écrit :

ben si je l'ai donné y'a qques posts là ;)


en effet je n'avais pas checké tes liens.
ca sera un tit complément d'info alors  :jap:


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°326963
the real m​oins moins
Posté le 08-03-2003 à 23:36:13  profilanswer
 

mrBebert a écrit :

T'es sur que le NULL du SQL est le même que le NULL de PHP ? J'ai un très gros doute :heink:  

c'est la moindre des choses nan? :heink:
et pour les incrédules:
 

Code :
  1. CREATE TABLE test (
  2.   id int(10),
  3.   txt varchar(50)
  4. );
  5. INSERT INTO test VALUES("13", "blah" );
  6. INSERT INTO test VALUES("23", "" );
  7. INSERT INTO test VALUES("33", NULL);

 

Code :
  1. <?
  2. include("includes/db.inc.php" );
  3. ?>
  4. <html>
  5. <body>
  6. <p>null testing</p>
  7. <table border=1>
  8. <tr>
  9. <td>$id</td>
  10. <td>$txt</td>
  11. <td>isset($txt)</td>
  12. <td>is_null($txt)</td>
  13. <td>empty($txt)</td>
  14. </tr>
  15. <?
  16. $sql = "SELECT id, txt FROM test ORDER BY id";
  17. $res = mysql_query($sql, openDBConnection());
  18. while ($row = mysql_fetch_array($res)) {
  19. $id = $row['id'];
  20. $txt = $row['txt']; ?>
  21.     <tr>
  22.      <td><?=$id?></td>
  23.      <td><?=$txt?></td>
  24.      <td><?=isset($txt)?"true":"false"?></td>
  25.      <td><?=is_null($txt)?"true":"false"?></td>
  26.      <td><?=empty($txt)?"true":"false"?></td>
  27.     </tr>
  28. <?
  29. }
  30. mysql_free_result($res);
  31. ?>
  32. </table>
  33. </body>
  34. </html>

 
 
(l'include ne fait que definir la fonction openDBConnection)
 
et ça donne:


$id  $txt  isset($txt)  is_null($txt)  empty($txt)
13   blah  true         false          false
23         true         false          true
33         false        true           true


 
 [:jm@rc]


Message édité par the real moins moins le 08-03-2003 à 23:36:53

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°326998
mrbebert
Posté le 09-03-2003 à 00:17:38  profilanswer
 

Donc on peut faire la différence :)
Intéressant :jap:  
 
Sinon, est-ce qu'il y a le même résultat dans ces 2 cas :
- echo isset($row['txt']);
- $txt = $row['txt']; echo isset($txt);


Message édité par mrbebert le 09-03-2003 à 00:18:01
n°327001
the real m​oins moins
Posté le 09-03-2003 à 00:19:18  profilanswer
 

mrBebert a écrit :

Donc on peut faire la différence :)
Intéressant :jap:  
 
Sinon, est-ce qu'il y a le même résultat dans ces 2 cas :
- echo isset($row['txt']);
- $txt = $row['txt']; echo isset($txt);

oui
 
si j'avais fait l'inverse (ne pas assigner $row['txt'] à $txt), on aurait pu en douter, mais là non ;)
 
si dans mon exemple $txt est null, forcément $row['txt'] l'est aussi
cela dit, tu peux tjs tester avant de baser tes script sur cette affirmation :D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°327005
mrbebert
Posté le 09-03-2003 à 00:27:10  profilanswer
 

Je testerais bien, mais j'ai pas de PHP/mysql là sur moi :(  
(enfin si, mais pas en état de marche :D )
 
Mais bon, dans tout les cas, je vais essayer de faire des choses plus simples. Ce genre de subtilités, je sens que ca va pas forcément plaire à mes collègues :pt1cable:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mysql] Laisser une valeur null par défaut ou non?

 

Sujets relatifs
[PHP/MySQL]Probleme avec un champ TIME[REGISTRE] Imprimante par défaut ??
Comment activer les commandes MySQL sous PHP (Linux)en php/mysql avoir accés à 1 base de donnée sur 1 autre hébergement?
date du jour par défaut pour mysql...[PHP - MYSQL] récupération d'une somme par sql dans php
[PHP/MYSQL] Charge sur serveur ? + diverses questions...MySQL, jointure qui fait planter MySQL .... [RESOLU]
mysql_pconnect() 
Plus de sujets relatifs à : [mysql] Laisser une valeur null par défaut ou non?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR