Votre SGBD accepte-t-il les guillemets simples autour des valeurs numériques?

Eléphant du PHP | 59 Messages

09 mars 2009, 14:24

Bonjour,

Je cherche à établir la liste des SGBD qui acceptent les guillemets simples autour des valeurs numériques?

Exemple: SELECT * FROM produit WHERE proid='1';

Voici ceux que j'ai testé:
MySQL /OK
PostgreSQL 8.3 /OK
SQLite /OK

(Il y a que pour MySQL que je suis sûr à 100% pour l'instant)

En connaissez-vous d'autres?


CREATE TABLE produit(proid int(11) auto_increment,prolib varchar(255),catid int(11),PRIMARY KEY (proid))
Modifié en dernier par dimalta5 le 09 mars 2009, 18:55, modifié 2 fois.

ViPHP
ViPHP | 4039 Messages

09 mars 2009, 15:48

Je vois pas trop l'intérêt.. surtout qu'il est très facile de filtrer les chiffres, peu importe l'input, avec une expression régulière de rien du tout.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 59 Messages

09 mars 2009, 16:33

Oui mais en filtrant de façon automatisée comme tu le suggères on arrivera à la situation inverse:

la valeur d'un champ déclaré en tant que varchar par exemple ne sera alors pas placée entre guillemets si elle ne contient que des chiffres.

Exemple:
SELECT * FROM produit WHERE prolib=123;
(prolib étant du type varchar)

Ceci fonctionne avec MySQL et SQLite mais pas avec PostgreSQL.

ViPHP
ViPHP | 3607 Messages

09 mars 2009, 16:54

Attention,
C'est à toi de décider si tel ou tel champs doit être filtrer pour recevoir des chiffres ou du texte...
Tu nous montre un exemple bancal...

ViPHP
ViPHP | 4039 Messages

09 mars 2009, 17:37

Attention,
C'est à toi de décider si tel ou tel champs doit être filtrer pour recevoir des chiffres ou du texte...
Tu nous montre un exemple bancal...
Pour sur, il ne faut pas laisser dépendre le format d'après le format des données, mais d'après le type du champ que tu veux vérifier...
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 59 Messages

10 mars 2009, 07:59

Merci pour vos réponses,

Je dois rendre une application portable et celle-ci utilise des guillemets quelque soit le type.
L'application marche parfaitement donc il n'est pas question de modifier des choses qui sont déjà portables.
J'étudie actuellement les différents points qui peuvent limiter la portabilité et celui la m'a paru important.

Si vous connaissez d'autres bases de données qui acceptent ou qui n'accepte pas les guillemets autour des valeurs numérique merci de les citer.

ViPHP
ViPHP | 3607 Messages

10 mars 2009, 11:32

Je dois rendre une application portable et celle-ci utilise des guillemets quelque soit le type.
L'application marche parfaitement donc il n'est pas question de modifier des choses qui sont déjà portables.
ça me parait contradictoire ce que tu nous dit...
Tu veux portabilisé ton application, et tu refuses de faire des modifs telles qu'on te le propose?
Et au fait tu utilsies PDO ou une autre couche d'abstraction?
ça serait plus pratique pour changer de sgdb sans arrêt ;)

Eléphant du PHP | 59 Messages

10 mars 2009, 12:35

Et au fait tu utilsies PDO ou une autre couche d'abstraction?
Oui Pdo ou Zend_db
ça me parait contradictoire ce que tu nous dit...
Tu veux portabilisé ton application, et tu refuses de faire des modifs telles qu'on te le propose?
En fait c'est justement la question, savoir avec quelles bases de données l'application pourra être compatible si je ne fais pas cette modification? (parce que dans le cas de cette application ça semble difficile)

Je viens d'avoir la confirmation pour Oracle cela fonctionne (je n'ai pas encore testé mais c'est bien décrit dans la doc) et pour SQL Server il semble que ça fonctionne mais j'attends encore la confirmation.

C'est tout ce que je veux savoir, soit ça passe soit ça passe pas, si ça ne passe pas et bien cette application en particulier ne sera pas compatible avec la base de données en question parce que ça reviendrait à tout restructurer que de modifier ça. Si jamais l'application peut déjà être compatible avec MySQL, PostgreSQL, Oracle, SQLite et SQL Server c'est déjà beaucoup.

C'est une étude préalable que je mène et je dois savoir à quoi m'en tenir sur cette question la, c'est tout. Si vous voulez absolument discuter avec moi d'autre chose :D, je suis toujours enchanté de discuter avec vous mais... c'était pas la question...:D