[RESOLU] Message d'erreu SQL.

Eléphanteau du PHP | 20 Messages

27 avr. 2013, 20:33

Bonjour à tous,

Je suis aujourd'hui face à un problème qui me turlupine et qui m'énerve.

J'ai du il y a quelques jours changer d'hébergeur (beaucoup de bug de connexion), sur celui ci mon code marchais très bien, mais sur le nouveau, problème...

Donc, je possède ce code :
<?php
try
{
    // On se connecte à MySQL
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO(MES ID);
    
    $reponse = $bdd->query('SELECT * FROM departs_type WHERE nature = "'.$_POST['type_inter'].'" ');
    
    while ($row = $reponse->fetch())
    {
    ?>
<?php echo $row['moyens']; ?>
    <?php
    }
    
    $reponse->closeCursor(); // Termine le traitement de la requête

}
catch(Exception $e)
{
    // En cas d'erreur pr&eacute;c&eacute;demment, on affiche un message et on arrête tout
    die('Erreur : '.$e->getMessage());
}


?>
Seul problème, quand j'envoie une nature contenant un : é, ', / ou autre, ce message s'afficher :

Code : Tout sélectionner

Erreur : SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_unicode_ci,COERCIBLE) for operation '='
Je ne vois pas du tout d’où provient le problème, pourriez vous m'aider ?

Cordialement, Jeunesapeur47.

Eléphant du PHP | 130 Messages

27 avr. 2013, 21:32

Vérifie l'encodage de ta base, elle doit être différente de ton ancienne.

Eléphanteau du PHP | 20 Messages

27 avr. 2013, 22:15

Déjà vérifier et modifier cet aprèm, mais toujours pareil.....

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

28 avr. 2013, 10:44

salut


peux tu être plus explicite sur ce que tu as vérifié ?

Le message est clair tu essais de mettre de l'utf-8 dans une colonne latin1_swedish_ci (ou l'inverse).
Il faut donc vérifier l'encodage au niveau de la base, mais aussi au niveau de la table ET de la colonne.

ensuite si ton site est en iso ajoute un utf8_decode, si c'est l'inverse utilise une utf8_encode.

as tu affiché la requête avec le message d'erreur ?

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 20 Messages

28 avr. 2013, 12:39

C'est bon, problème résolu, j'ai mis tout mes champs en utf_8 unicode.

Merci ! :)