Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster -> FAQ BDD, Cours BDD et Sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 16/11/2009, 09h33   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: novembre 2008
Messages: 67
Par défaut insertion caractères spéciaux dans base ACCESS

Bonjour à tous,
voici mon soucis : lorsque je veux rentrer dans ma base des champs textes ou il y a des quotes ou des sauts de ligne, cela me fait planter l'insertion car en faite ca coupe mon champs sql de requête. Comment résoudre cela ? J'ai bien essayer avec la fonction addslashes mais sans aucun résultat .. Voici la partie de mon code avec le champ sql :
Code :
$sql = "INSERT INTO T_TACHE (date_tache,libelle_tache,dossier_tache,client_tache,detail_tache,valider_tache,yannick,aurelien,robert,daniel,jonas,marielle)
				VALUES (#".$dateUS."#, '".$tache."', '".$dossier."', '".$client."', '".$details."', ".$valider.", ".$yannick.", ".$aurelien.", ".$robert.", ".$daniel.",
				".$jonas.", ".$marielle." ) " ;
				odbc_exec($cnx,$sql) or die('Erreur dans : '.$sql.' ');
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/11/2009, 11h03   #2 (permalink)
Modérateur
 
Avatar de sabotage
 
Date d'inscription: juillet 2005
Messages: 9 982
Par défaut

Pour les guillemets et apostrophes, c'est bien addslashes() qu'il faut utiliser.

Peux-tu nous montrer ce que tu as fait ?
sabotage est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 23/11/2009, 17h45   #3 (permalink)
Nouveau membre du Club
 
Date d'inscription: novembre 2008
Messages: 67
Par défaut toujours pareil !

J'ai bien mis la fonction comme ceci :
Code :
// INSERTION DE LA TACHE !
			$sql="	INSERT INTO T_TACHE (id_tache,libelle_tache,dossier_tache,client_tache,detail_tache,valider_tache) 
					VALUES(".$id_tache.",'".addslashes($tache)."','".addslashes($dossier)."','".addslashes($client)."','".addslashes($details)."',".$valider.")
Mais toujours le même problème :
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression ''*** \' ***,0)'., SQL state 37000 in SQLExecDirect in ******\valider_tache.php on line 66
erreur sql dans : INSERT INTO T_TACHE (id_tache,libelle_tache,dossier_tache,client_tache,detail_tache,valider_tache) VALUES(316,'brtbrtbrtbrt','****','******','** \' ***',0).
Les étoiles représentent une chaine de caractère quelconques sans caractère spécial.
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/11/2009, 17h56   #4 (permalink)
Modérateur
 
Avatar de sabotage
 
Date d'inscription: juillet 2005
Messages: 9 982
Par défaut

tu as remarqué que dans l'erreur il manque une apostrophe pour cloturer ton avant dernière chaine ?
sabotage est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 23/11/2009, 18h00   #5 (permalink)
Nouveau membre du Club
 
Date d'inscription: novembre 2008
Messages: 67
Par défaut

je viens de remarquer mais cela ne change rien car en faite c'est moi qui est mal recopier, il y a bien un guillemet a la fin de la chaine de caractère ! Donc a tu une idée pour résoudre ce problème ?
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/11/2009, 18h12   #6 (permalink)
Modérateur
 
Avatar de sabotage
 
Date d'inscription: juillet 2005
Messages: 9 982
Par défaut

Trouve la partie de la requete qui pose probleme.
sabotage est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 24/11/2009, 09h28   #7 (permalink)
Nouveau membre du Club
 
Date d'inscription: novembre 2008
Messages: 67
Par défaut

Citation:
Envoyé par sabotage Voir le message
Trouve la partie de la requête qui pose problème.
Je sais que la partie qui déconne est celle qui a des quottes dans la chaine de caractères... J'ai développé dans un autre projet en php avec mysql un site web qui fonctionne très bien, j'utilise cette même fonction pour les caractères spéciaux et il n'y a aucun soucis avec la BDD, est-ce que cela viendrait de ACCESS ? Comment résoudre cela ? Merci !
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/11/2009, 09h49   #8 (permalink)
Nouveau membre du Club
 
Date d'inscription: novembre 2008
Messages: 67
Par défaut solution

J'ai trouvé une solution qui a l'air de fonctionné :
Code :
$sql="	INSERT INTO T_TACHE (id_tache,libelle_tache,dossier_tache,client_tache,detail_tache,valider_tache) 
					VALUES(".$id_tache.",'".htmlspecialchars($tache,ENT_QUOTES)."','".htmlspecialchars($dossier,ENT_QUOTES)."',
					'".htmlspecialchars($client,ENT_QUOTES)."','".htmlspecialchars($details,ENT_QUOTES)."',".$valider.")
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/11/2009, 10h16   #9 (permalink)
Membre éclairé
 
Date d'inscription: mars 2005
Localisation: Au coeur des Cévennes
Messages: 399
Par défaut

Petite interrogation.
Est ce que ACCESS ne nécessite pas d'échapper les apostrophes en les doublant (style magic_quotes_sybase) ?
Petibidon est actuellement connecté   Envoyer un message privé Réponse avec citation
NEWS PHPFAQ PHPCours PHPSources PHPLivres PHPScripts PHPOutils PHPComparatifsZend Framework

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 13h42.


Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.