Bonjour à tous,
Je souhaite intégrer des données de façon automatiques dans ma base de donnée Mysql, et j'ai une erreur car mes données contiennent du texte donc des quotes (simples et/ou double...)
Voila la ligne d'insert :
$requete1="insert into truc ( `id` , `nom` , `description` , `qte` , `prix` , `prixf` , `marque` , `url` , `img` , `famille` ) values ('$col1','$col2','$col3','$col4','$col5','$col6','$col7','$col8','$col9','$col10') ";
Et il plante lorsque je veux insérer par exemple :
Bonjour, je m'appel blabla..."
A cause du ' je pense.
Alors A L'AIDE !!!
Merci à tous.
# '".$val."'
Posté par nicodache . Évalué à 1.
le truc que tu insères à quel type de donnée ?
varchar ? text ? autre chose ?
[^] # Re: '".$val."'
Posté par roule007 . Évalué à 1.
Mes données sont soit de type text soit varchar !
# Un indice
Posté par mac . Évalué à 2.
http://fr2.php.net/manual/fr/function.mysql-real-escape-string.php(...)
[^] # Re: Un indice
Posté par roule007 . Évalué à 0.
Je ne vois pas comment l'utiliser dans mon cas ?!
Ce que je veux c juste pouvoir mettre dans mes données text ou varchar du blabla avec des quotes et autres caractéres spéciaux sans que sa pose pb !
[^] # Re: Un indice
Posté par mac . Évalué à 1.
[^] # Re: Un indice
Posté par benji39 . Évalué à 1.
en fait, je crois qu'il faut que tu mettes 2 ' de suite au lieu d'un seul.
en PHP, ca donne quelque chose comme ca :
$var = str_replace("'", "''", $var);
remplacement de ' par '' (2 ')
[^] # Re: Un indice
Posté par roule007 . Évalué à 1.
$requete= "insert into truc (id, nom, description, qte, prix, prixf, marque, url, img, famille) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', quote_smart($col1), quote_smart($col2), quote_smart($col3), quote_smart($col4), quote_smart($col5), quote_smart($col6), quote_smart($col7), quote_smart($col8), quote_smart($col9, quote_smart($col10)) ";
Et voila l'erreur générée :
erreur d'interrogation de la base, You have an error in your SQL syntax near '(GU00448), quote_smart(Bla bla-bla), quote_smart(Retrouvez les enfi' at line 1
HELP ;)
[^] # Re: Un indice
Posté par nicodache . Évalué à 2.
et affiche nous ce que ca donne :o
[^] # Re: Un indice
Posté par roule007 . Évalué à 0.
J'ai utilisé le remplacement d'un ' par 2' et sa marche nickel !!!
Merci à tous !
[^] # Re: Un indice
Posté par Bruno (site web personnel) . Évalué à 1.
Une solution plus propre serait re reprendre la chaîne insert proposée par nicodache (1er post), et de remplacer les $colX par des mysql_real_escape_string($colX), comme l'a si bien indiqué Olivier.
[^] # Re: Un indice
Posté par DocteurCosmos . Évalué à 0.
$requete= "insert into truc (id, nom, description, qte, prix, prixf, marque, url, img, famille) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', ".quote_smart($col1).", ".quote_smart($col2)." etc. ...
et si la valeur à insérer est du type chaine de caractères, n'oublie pas les quotes :
'".quote_smart($col1)."' pour chaque occurrence.
# addslashes()
Posté par Hervé Rilos . Évalué à 1.
http://fr2.php.net/manual/fr/function.addslashes.php(...)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.