Page 1 sur 1

[R] MySql et les textes...

Posté : mar. 15 avr. 2014 11:24
par Ks10
Bonjour à tous

Donc voilà je dois insérer du texte dans une table mysql avec autoit.
Jusque la :
- La connexion : Pas de soucis.
- L'insertion des champs autre que du texte : Ok

Par contre dès qu'il s'agit d'un texte, j'ai un soucis.
Car mysql traite une erreur dès que le texte possède un ' car chaque donnée est entre ces apostrophes.
Est-il possible de recherché tous les charactère de ce type ' afin de mettre un \ juste après ce charactère ? Un peu comme en php.

J'espère avoir était assez compréhensible lol
L'idée global est de recherché chaque apostrophe citée en haut et de mettre un antislash juste après automatiquement avant l'insertion du texte dans la base.

Re: [..] MySql et les textes...

Posté : mar. 15 avr. 2014 11:53
par Hugues
Salut,

j'ai eu le même soucis recemment... :mrgreen:

Moi j'ai opté pour la solution de l'interdire dans la saisie... mais dans ton cas tu peux faire un StringReplace().

Re: [..] MySql et les textes...

Posté : mar. 15 avr. 2014 12:00
par jchd
Interdire ? C'est sauvage !

Tous les moteurs SQL demandent des chaînes litérales entre simples quotes. Pour représenter une quote, il suffit de la doubler.

$text = StringReplace($text, "'", "''")

Re: [..] MySql et les textes...

Posté : mar. 15 avr. 2014 12:25
par TT22
Ou alors utiliser la fonction _SQLite_Escape()

Re: [..] MySql et les textes...

Posté : mar. 15 avr. 2014 13:30
par jchd
_SQLite_FastEscape, l'ancienne est atroce.
Par contre il ne faut pas entourer de quotes dans ce cas-là.

Re: [..] MySql et les textes...

Posté : mar. 15 avr. 2014 13:36
par Ks10
La méthode de Jhcd fonctionne bien pour moi :)

A titre informatif et curiosité :

@TT22 :

- J'utilise les fonctions de l'udf EzMySql.au3 , est-elle compatible avec ta commande _SQLite_Espace() ?

Sujet résolu à par ça :)

Merci