Laisser une valeur null par défaut ou non? [mysql] - SQL/NoSQL - Programmation
Marsh Posté le 07-03-2003 à 18:38:11
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
Marsh Posté le 07-03-2003 à 22:11:02
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
Marsh Posté le 08-03-2003 à 01:31:37
mrBebert a écrit : J'ai tendance à essayer d'éviter les champs NULL, sauf si ca représente réellement quelque chose. |
le truc c'est que justement, '' et NULL c'est pas la meme chose
Marsh Posté le 08-03-2003 à 11:55:31
the real moins moins a écrit : le truc c'est que justement, '' et NULL c'est pas la meme chose |
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
Marsh Posté le 08-03-2003 à 13:49:04
la question m'intéresse, et pour le moment j'ai tendance à éviter les null également.
Marsh Posté le 08-03-2003 à 14:05:11
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. |
=== 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
Marsh Posté le 08-03-2003 à 19:04:34
T'es sur que le NULL du SQL est le même que le NULL de PHP ? J'ai un très gros doute
Marsh Posté le 08-03-2003 à 23:00:49
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?
Marsh Posté le 08-03-2003 à 23:05:55
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 |
ben si je l'ai donné y'a qques posts là
Marsh Posté le 08-03-2003 à 23:06:23
bon comme j'ai rien à foutre et que mon serveur est allumé je vais tester pour vous
Marsh Posté le 08-03-2003 à 23:07:16
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
Marsh Posté le 08-03-2003 à 23:36:13
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 |
c'est la moindre des choses nan?
et pour les incrédules:
Code :
|
Code :
|
(l'include ne fait que definir la fonction openDBConnection)
et ça donne:
|
Marsh Posté le 09-03-2003 à 00:17:38
Donc on peut faire la différence
Intéressant
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);
Marsh Posté le 09-03-2003 à 00:19:18
mrBebert a écrit : Donc on peut faire la différence |
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
Marsh Posté le 09-03-2003 à 00:27:10
Je testerais bien, mais j'ai pas de PHP/mysql là sur moi
(enfin si, mais pas en état de marche )
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
Marsh Posté le 07-03-2003 à 15:33:36
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?