Re: encore Perl

Page principale

Répondre à ce message
Auteur: sCALP
Date:  
À: guilde
Sujet: Re: encore Perl
> Bonjour,
>
> Je lis un fichier (texte) pour remplir une autre fichier (mysql)
>
> Au moment de INSERT j'ai la ligne d'erreur :
>
> DBD::mysql::st execute failed: You have an error in your SQL syntax near
> 'enregistrements%20affectés%20: 1"','"Mozilla/4.0 (compatible; MSIE
> 6.0; Win' at line 3 at ./perl/insert.pl line 152, <FILE> line 256.
>
> un des champs à remplir =
>

"https://m....erreur%60+WHERE+1&message=Nombre%20d'enregistrements%20affecté
> s%20:&nbsp;1"
>
> Chaque fois qu'un champ se termine par cela => erreur et enreg non créé!
>
> Comment lui dire de ne pas faire d'interprétation!
>
> Cette base sert pour plusieurs petites applis.
>
> J'ai la même chose dans une zone qui n'a pas de guillemets et cela passe
> sans problème!
>
> Si vous avez la solution... (enlever les ""? si oui, quelle formules
> appliquées? $toto =???????????|;)
>
> merci
> anne


Bonjour,
oui, effectivement, ce serait plus parlant si tu nous indiquais les morceaux
de log de mysqld concernant ce probleme, et surtout si tu nous montrais le
bout de code Perl incrimine.
utilises tu DBI ?
si oui, plutot que de taper toi meme tes requetes SQL, essayes ceci (bien
sur, excuses moi si tu codais deja de cette facon...) :

$dbh->prepare("INSERT INTO db (nom,role) VALUES (?,?)");
$dbh->execute($nom,$role);

au moins, tu n'as pas a 'coder' le contenu de tes variables, je n'ai jamais
rien vu de rejete par ce systeme. l'avantage est de preparer une seule fois
une requete, et de l'executer autant de fois que tu veux, en changeant les
parametres a chaque fois (l'ordre des parametre de 'execute' est equivalent
a l'ordre des '?' dans le 'prepare'

a+
sCALP