Bonjour à tous,

Comme expliquer dans le titre de ce sujet, je n'arrive pas a faire une requète sql (insert into) avec les fonctions prepare et execute alors que mes tables sont composé d'espace !

INSERT INTO qpros SET  "persévérent"=:persévérent, "autonomie"=:autonomie, "capacité à travailler sous pression"=:capacité à travailler sous pression ......

J'ai essayer avec le caractère "`" entre chaque table, ça ne marche pas non plus ...

Quelqu'un a une idée ?

Merciiiii :)

7 réponses


Huggy
Réponse acceptée

Dans l'exemple que tu donnes, ce sont les colonnes qui ont des espaces et des accents.
Si les tables sont en MyIsam, elles correspondent à des fichiers sur dd, c'est donc dépendant de l'OS (donc évite)
si les tables sont en Innodb ça passe, il suffit d'encadrer le nom par des quotes alt 7
Pour les colonnes les espaces sont tolérés toujours à condition d'encadrer avec des quotes.
Pour les accents, il faut que le client et le serveur utilisent le même encodage, c'est pas forcément l'encodage des données
regarde du côté de la variable set character_set_system, character_set_server et character_set_client

Souvent on récupère ça d'une base Access et on doit faire avec ...

Bonjour.
Normalement les noms de tables ne doivent comporter ni d'espace, ni d'accent, pareil pour les noms de champs.
Il te faut donc corriger ceci.

HoustonB
Auteur

A dommage car j'utilise mes tables pour les afficher ...
Mais quand je fais SELECT `capacité à travailler sous pression` FROM qprosça marche

Oui effectivement, il ne faut surtout pas mettre d'accents ou d'espace dans des noms de table ou colonne pour eviter des problèmes plus tard.

Utilise des " _ " à la place des espaces.

tu peux remplacer les espace avec des _ ou -
un autre probleme n'utilise pas Les caractères spéciaux comme é ê î ...

HoustonB
Auteur

Merci pour vos reponse ça marche :)

Si ton problème est résolu, marques ton sujet comme tel.
Merci d'avance.