Pb d'apostrophe pour ACCESS PHP

Résolu/Fermé
chouli_om Messages postés 113 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 22 avril 2009 - 21 avril 2008 à 11:37
chouli_om Messages postés 113 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 22 avril 2009 - 21 avril 2008 à 15:33
Bonjour,

J'ai un petit problème, actuellement en stage je dois développer une application qui tourne sous ACCESS... Les problème que j'ai actuellement : c'est lors de l'insertion je dois inserer un descriptif en BD, celui-ci peut contenir des ' ou " ou / . Vous allez me dire d'utiliser la fonction addslashes() le probleme c'est qu'elle me rajouté 3backslashe au lieu d'un..

donc j'ai pris cette fonction :

function ajouter_slashes(&$texte)
{
if(get_magic_quotes_gpc()===0)
{
return addslashes($texte);
}
else
{
return $texte;
}
}

Avec cela tout fonctionne, mais lors de l'insertion, voici ma requette :

function addFormation($numero,$nom,$duree,$descriptif,$message,$cnx)
{
$req=" INSERT INTO formation (num_formation,nom,duree,descriptif,message) VALUES ('".$numero."','".$nom."','".$duree."','".$descriptif."','".$message."')";
echo $req;
$rs_code=odbc_exec($cnx,$req) or die("ne peut pas etre executé");
return $rs_code;
}

avec $descriptif =" c\'est l\'histoire d\'un mec";

Ben l'erreur suivante est :
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression ''c\'est l\'histoire d\'un mec','')'., SQL state 37000 in SQLExecDirect in C:\wamp\www\Reservations\connexion.php on line 100
ne peut pas etre executé

Merci pour votre aide....
A voir également:

3 réponses

chouli_om Messages postés 113 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 22 avril 2009
21 avril 2008 à 13:49
Personne veut me répondre ?????
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 122
21 avril 2008 à 14:40
Salut,

C'est pas que personne ne veut vous répondre, mais peut être qu'on ne sait pas :)

Faire des restriction sur le descriptif c'est la solution la plus pratique, mais une chose est sûre:

Pour inserer un ' il faut mettre deux '' par exemple (j'ai testé):

insert into Utilisateur (CodeUtilisateur) values ('t''arek');

va inserer t'arek dans la base (sans problème).

Donc si vous voulez, vous pouvez remplacer tous les ' par deux ''.

Pour les " et les /\, pour sql c'est pas un problème.
0
chouli_om Messages postés 113 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 22 avril 2009
21 avril 2008 à 15:33
Bon j'ai trouvé en faite il faut utiliser la fonction str_replace(" ' ", """,$texte);

avec sa tout se passe bien lors de l'insertion

0