IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SGBD Perl Discussion :

bind_param modifie l'encodage


Sujet :

SGBD Perl

  1. #1
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut bind_param modifie l'encodage
    Bonsoir
    je suis en train de reprendre une appli perl/Tk qui attaque une BDD postGreSQL via le module DBI / ODBC sous win XP. Jusqu'à présent la base était sous encodage SQL_ASCII. Je viens de la passer en UTF8.

    Donc, j'ai modifié l'encodage du script perl en conséquence (tout utf8).

    Quand je rentre un nouvel enregistrement dans ma base par cette interface, je m'aperçois que les caractères accentués posaient souci. Or ma chaîne de traitement est entièrement utf8.

    Je me suis penché sur les log ODBC et vu que les requêtes paramétrées (bind_param) transformaient mes caractères accentués avant d'insérer en base de données. Pour être sûr, j'ai remplacé une de ces requête paramétrée par une requête classique, et là plus de problème.

    Savez vous si on peut spécifier au moment du bind_param que la chaîne correspondante est en utf8?

    merci d'avance pour vos réponses

    Gérald

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sth = $dbh-> prepare("INSERT INTO unit(ident, name, description, mail, facturation_address, unit_address) VALUES ('$ident',?,?,?,?,?)")
    $sth->bind_param(1,$name,SQL_VARCHAR);
    $sth->bind_param(2,$description,SQL_VARCHAR);
    $sth->bind_param(3,$mail,SQL_VARCHAR);
    $sth->bind_param(4,$adresse_facturation,SQL_VARCHAR);
    $sth->bind_param(5,$adresse_labo,SQL_VARCHAR);
    $sth->execute() || die error('échec : ' . DBI::errstr);
    $sth->finish;
    $dbh->commit();
    transforme mes caractères accentués avant d'envoyer la requête à la base alors que les commandes suivantes conservent le bon encodage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $requete = "INSERT INTO unit(ident, name, description, mail, facturation_address, unit_address) VALUES ('$ident', '$name', '$description', '$mail', '$adresse_facturation', '$adresse_labo')";
    $log->debug($reuqte);
    $sth = $dbh-> prepare($requete);
    $sth->execute() || die error('échec : ' . DBI::errstr);
    $sth->finish;
    $dbh->commit();

  2. #2
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    bon ben d'accord, si personne ne peut me répondre....je vais être dans l'obligation de reprendre tout le code pour supprimer ces requêtes paramétérées.....vous n'avez pas de coeur

Discussions similaires

  1. Insérer une ligne dans un fichier texte sans modifier l'encodage
    Par Benzeghiba dans le forum Framework .NET
    Réponses: 6
    Dernier message: 26/01/2009, 22h34
  2. modifier l'encodage en iso
    Par copro dans le forum Apache
    Réponses: 3
    Dernier message: 05/12/2008, 09h55
  3. Comment modifier l'encodage des fichiers sources ?
    Par ChPr dans le forum NetBeans
    Réponses: 2
    Dernier message: 01/05/2007, 21h16
  4. Modifier l'encodage des caractères
    Par mohamed2006 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/02/2007, 16h14
  5. Modifier l'encodage de mes tables
    Par raoulchatigre dans le forum Outils
    Réponses: 4
    Dernier message: 24/08/2006, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo