Problème d'apostrophe PHP et SQL SERVER - PHP - Programmation
Marsh Posté le 16-10-2008 à 13:36:30
Si les champs GR et BAT sont des chaines de caractères, alors il faudrait mettre des apostrophes comme cela a été fait pour ADR_RUE.
Marsh Posté le 16-10-2008 à 16:18:06
olivthill a écrit : Si les champs GR et BAT sont des chaines de caractères, alors il faudrait mettre des apostrophes comme cela a été fait pour ADR_RUE. |
Désolé, j'ai pas assez précisé... le problème de ma requête provient de la variable $rue et donc le champ ADR_RUE quand celle-ci comporte un chaine de caractère avec des appostrophes comme ici "rue de l'abbe pierre".
GR, BAT et ADR_NO sont des nombres définis comme DECIMAL ENTIER.
Quand le nom de la rue n'a pas d'apostrophe, exemple : "rue du Docteur Frader", je n'ai pas d'erreur répertoriée tout fonctionne normalement...
C'est pour cela que je me demande s'il n'existe pas une autre façon d'échapper les apostrophes dans les requêtes SQL pour SQL SERVER par le language PHP...
Marsh Posté le 16-10-2008 à 16:38:52
ReplyMarsh Posté le 16-10-2008 à 17:04:59
ionik a écrit : mysql_real_escape_string() |
Peut-être mais je ne travaille pas avec MYSQL mais avec SQL SERVER, les fonctions sont donc nommées mssql, y'a une fonction identique pour du sql server?
Marsh Posté le 16-10-2008 à 17:12:01
sananas a écrit : |
En doublant les quotes avec str_replace("'", "''",$variable);
Je n'ai plus d'erreur sur les logs...
Mais est-ce vraiment correct comme language SQL?
Enfin, ça marche....
Marsh Posté le 16-10-2008 à 21:34:36
Doublez les quotes est tout à fait correct. Cela fait partie du standard SQL depuis l'origine. Je connais une une demi-douzaine de SGBD différents (dont SQL-server) et tous requierent que les quotes soient doublées quand elles sont à l'intérieur d'une chaine de caractères. Donc le str_replace est aussi ce que je conseillerais, mais je suis grilled.
Marsh Posté le 16-10-2008 à 10:56:03
Bonjour,
J'ai un soucis avec une de mes requêtes SQL SERVER sous php, j'ai des messages d'erreur qui apparaissent dans mon log php_error, mais la requête affiche quand même le résultat... j'aimerais comprendre le problème lié à ces messages...
J'ai une fonction qui va lister tout les numéros de rue d'un même immeuble en fonction de son numéro de groupe, de bâtiment et du nom de la rue, pour m'afficher correctement l'adresse de ce même immeuble :
Le résultat de fonction me donne l'adresse suivante : 12,14,16,18 rue de l'abbe Pierre
Les erreur logs sont les suivantes :
[16-Oct-2008 10:31:54] PHP Warning: mssql_query() [<a href='function.mssql-query'>function.mssql-query</a>]: message: Line 1: Incorrect syntax near 'ABBE'. (severity 15) in /xxxxxxx/fct_RueAdr.inc.php on line 12
[16-Oct-2008 10:31:54] PHP Warning: mssql_query() [<a href='function.mssql-query'>function.mssql-query</a>]: message: Unclosed quotation mark before the character string ' order by ADR_RUE,ADR_NO '. (severity 15) in /xxxxxxx/fct_RueAdr.inc.php on line 12
[16-Oct-2008 10:31:54] PHP Warning: mssql_query() [<a href='function.mssql-query'>function.mssql-query</a>]: Query failed in /xxxxxxx/fct_RueAdr.inc.php on line 12
[16-Oct-2008 10:31:54] PHP Warning: mssql_fetch_array(): supplied argument is not a valid MS SQL-result resource in /xxxxxxx/fct_RueAdr.inc.php on line 22
Qu'est ce qui ne va pas dans ma requête SQL j'ai l'impression que le addslashes ne fait pas vraiment son travail?
---------------
Recherche carillon métallique avec dégradé de couleur...