Joelindien27
Messages postés27Date d'inscriptionvendredi 24 janvier 2003StatutMembreDernière intervention19 juillet 2005
-
18 juil. 2005 à 13:59
cs_Cosinus12
Messages postés8Date d'inscriptionmercredi 18 juin 2003StatutMembreDernière intervention 2 janvier 2008
-
2 janv. 2008 à 14:44
Bonjour à tous,
J'ai un énorme problème avec mes requêtes INSERT et UPDATE en php/MS SQL
Dès qu'il y a une apostrophe dans un des champs la requête plantait même en prenant le soin d'abuser des addslashes() comme je fais d'habitude.
J'ai appris par la suite que le caractère de despécialisation sous MS SQL était un simple quote ( ' ) et non pas un antislash ( \ )
comme sous MySQL.
Maintenant je me sers donc de la fonction str_replace pour ajouter un simple quote avant l'apostrophe.
L'insert et l'update se font merveilleusement puisque j'arrive à retrouver l'enregistrement.
Mais au niveau php, ça plante.
Voici l'exemple :
<?php
//Ajout de xxx
function add_xxx($xxx_pays,$xxx_ville,etc...){
//----------------------------------------------------->
$clear_xxx_pays= str_replace("'", "''", "$xxx_pays");;
$clear_xxx_ville = str_replace("'", "''", "$xxx_ville");;
etc...
//Verif etc...
require("../conf/conf.inc.php");
$db = mssql_connect("$sql_serveur","$sql_user", "$sql_passwd");
$db or die("$err_serveur_connect");
$result = mssql_select_db("$sql_bdd",$db);
$result = mssql_query("INSERT INTO xxx (xxx_pays,xxx_ville)
VALUES ('$clear_xxx_pays','$clear_xxx_ville')",$db);
Mon INSERT se fait impeccable mais j'ai le message d'erreur Pas OK alors que tout se passe bien...
Donc la variable $result n'est pas true mais false alors que tout se passe bien.
Je suis complètement paumé, merci de votre aide :)
Joelindien27
Messages postés27Date d'inscriptionvendredi 24 janvier 2003StatutMembreDernière intervention19 juillet 2005 19 juil. 2005 à 15:37
Salut Anthomicro,
Comme je l'ai expliqué, j'utilisais addslashes() avant mais le caractère de déspécialisation sous MS SQL n'est pas un antislash comme sous MySQL mais un simple quote.
Donc malheureusement ça ne résout pas le problème...