Page 1 sur 1

pb apostrophes

Posté : 20 mars 2007, 11:38
par Invité
Bonjour à tous,

J'utilise php pour tenter d'importer les données d'un fichier csv dans une base de données.
J'ai des pbs avec des apostrophes qui sont doublées après lecture du fichier. Par exemple, au lieu d'avoir:
Une "Ténébreuse affaire" a Bourbourg en 1648. Le Bourgmestre et le Gouverneur.

Je me retrouve avec:
"Une ""Ténébreuse affaire"" a Bourbourg en 1648. Le Bourgmestre et le Gouverneur. "'

Savez vous comment je dois traiter les chaines de caractères pour éviter ce pb?

Posté : 20 mars 2007, 11:48
par Invité
je précise qu'actuellement, ma requete d'insertion mysql me renvoie
Il semble qu'il y ait une erreur dans votre requête SQL. Le message ci-bas peut vous aider à en trouver la cause.

ERROR: Apostrophe non fermé @ 7235
STR: '
SQL: INSERT INTO produits
et aussi
#1064 - Erreur de syntaxe près de 'histoire révolutionnaire.', 'P., Plon, 1921,', '1921', 'In-12, ' à la ligne 1

Posté : 20 mars 2007, 12:21
par Ryle
Il y a deux choses.. la première, ce sont les guillemets du format csv. Lorsque tu enregistre un fichier au format csv, les champs contenant des retour à la ligne ou des guillemets, sont entourés de guillemets et toutes les guillemets qu'il contient sont doublées.
Il existe des fonctions php pour lire ces fichiers.

L'autre problème est celui des apostrophes dans ta requête sql. En effet, il te faut protéger les apostrophes de tes chaines pour que SQL ne considère pas que celles-ci délimitent la chaine. Il te faut donc ajouter un antislash (ou les doubler) pour les injecter dans ta base :)