insérer un apostrophe... :bounce:

insérer un apostrophe... :bounce: - SQL/NoSQL - Programmation

Marsh Posté le 27-07-2004 à 15:41:50    

Salute !
 
comment faire une requete comme celui la ?
 
INSERT INTO TABLE VALUES ('O'reilly', 'Mickael');
 
Parce ca sous SQL SERVER ca marche pas a cause du simple quote ' de O'reilly...
 
J'ai mis par curiosité un \' mais marche pôs...  :(
 
Merci d'avance.
 
PS:j'execute ces requetes sous PHP, le stripslashes n'arrange pas...

Reply

Marsh Posté le 27-07-2004 à 15:41:50   

Reply

Marsh Posté le 27-07-2004 à 22:45:23    

Le caractère d'échappement SQL-92 est simplement le doublonnage du caractère spécial.
 
Une quote dans une chaîne sera donc traduite par '' dans la requête SQL.
 
Sinon, certains SGBD (MySQL et Oracle en tout cas) supportent aussi l'échappement POSIX, c'est à dire la présence d'un anti-slash \ devant le caractère. La quite devient alors \'
 
Toutefois, je te déconseille cette dernière solution pour plusieurs raisons :
1) C'est déjà l'échappement dans certains langages (C, PHP,  Java, etc.) On arrive donc rapidement à ne plus trop savoir qui fait quoi dans une requête stockée dans une variable.
2) Si ce système est compatible POSIX, il n'est toutefois pas compatible SQL 92. Par conséquent, certains SGBD (SQL Server par exemple) ne le supportent pas.
 
Pour cette dernière raison surtout, dans une perspective de portabilité du code, je déconseille grandement l'utilisation du système POSIX.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed