Envoye d'une phrase dans une base de donnée SQL

Petit nouveau ! | 1 Messages

08 mars 2008, 15:49

Bonjour,

Je suis entrain de créer un script PHP permettant d'envoyer des informations saisies par l'utilisateur dans une base de données. Ces info sont des phrases c'est-à-dire des mots séparés par des espaces. Le problème est que lorsque j'envoie cette phrase, seul le premier mot est enregistrer dans la base SQL. Pour résoudre ce problème, j'ai donc remplacer les espaces par des caractères spéciaux lors de mon envoi dans la base afin d'avoir une seule chaine de caractère.

Ma question est : Y a t-il une autre solution pour envoyé une phrase à part celle que j'ai utilisée ??

merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 mars 2008, 16:01

Il y a très certainement une autre solution, il suffit d'enregistrer directement ta chaine dans ta base via une requête SQL sans se soucier des espaces.. Les seuls caractères dont tu devrais avoir à te soucier sont les apostrophes (voire les guillemets) qu'il faut protéger pour éviter que le parseur SQL ne les confonde avec celles qui délimitent la chaine...

Ton problème vient sans doute d'ailleurs... montre nous ton formulaire et le code php qui récupère les données saisies pour les insérer en base :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 1996 Messages

08 mars 2008, 16:25

Est ce que cela peut venir de sa base elle - même avec un genre varchar (10) indiqué sur le champ ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 mars 2008, 17:15

Un sgbd qui ne gèrerai pas les espaces ? j'avions jamais vu ça...

Dans le cas d'un champ dont le type est inadapté, il y aurait un message d'erreur, si c'est une question de taille, selon la base il y aurait éventuellement un message également, mais surtout, il ne pourrait pas stocker sa chaine après en avoir converti les espaces en autre chose...

A la limite je soupçonnerait plus que l'enregistrement se fait bien, mais que c'est la restitution dans un input de type text qui pose problème s'il a oublié de délimiter l'attribut value="" avec des guillemets, il prend dans ce cas que le premier mot... va falloir attendre et voir avec le code :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...