Modérateur PHPfrance |
10684 Messages
10 juin 2014, 23:13
En fait, la plupart des SGBD sont sensibles aux types des données. Dans un champ texte, ils attendent une chaine de caractères, dans un champ date ils attendent une date formatée, dans un champ numérique, ils attendent des nombres.
Les apostrophes en SQL servent à délimiter les chaînes de caractères (char, varchar, text, date, ...). Du coup, si tu mets un nombre entre apostrophe, le moteur de base de données peut considérer qu'il ne s'agit plus d'un nombre mais d'une chaine et considérer que ce format est incompatible par rapport au type de la colonne en base (pour une opération mathématique tu fais 2+3, pas '2'+'3'

)
Aujourd'hui certains SGBD comme MySQL ou MySQLi tolèrent cette syntaxe et font les conversions nécessaires aux mêmes. Mais du coup :
- le sgbd doit faire un travail de conversion supplémentaire (bon, ok, ça se compte en pouillème de millisecondes, mais c'est pas une raison

)
- le jour où tu dois travailler sur oracle, sql server ou db2, tes requêtes ne fonctionneront plus et tu risques de passer un certain temps à t'arracher les cheveux avant de comprendre pourquoi (alors que tu peux prendre de bonnes habitudes des maintenant

)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...