Incorrect string value

Résolu
Bonjour le monde,

En fait mon problème est relativement simple: lorsque j'essaie d'envoyer une chaine de caractères dans ma base de données, je reçoit l'erreur "incorrect string value:...

pourtant ma table est en utf-8... J'ai essayé de changer l'interclassement en latin1_general mais ça ne change rien

quelqu'un peut-il mettre fin à mon agonie de recherche et de réflexion? ^^

Merci...

8 réponses

  1. Salut,

    Je vais bientôt y aller, mais un petit bout de code peut-être ?
    0
    1. Je seconde. Un bout de code! et le contenu de la chaine en cause serait bien pour offrir un support
      0
      1. pardon:

        $rq = "UPDATE site_article SET title=\"$titre\", text=\"$text\", auteur='$auteur', autit='$autit' WHERE id=$id";
        mysql_query($rq) or die(mysql_error());
        

        pour la chaine de caractère, il suffit qu'elle contienne des accents pour que le problème se fasse sentir
        0
        1. Tu peux essayer
          $rq = 'UPDATE site_article SET title="'.mysql_real_escape_string($titre).'", text="'.mysql_real_escape_string($text).'", auteur="'.mysql_real_escape_string($auteur).'", autit="'.mysql_real_escape_string($autit).'" WHERE id="'.mysql_real_escape_string($id).'"';

          J'ai ajouté entre autre la fonction mysql_real_escape_string() de PHP
          https://www.php.net/manual/fr/function.mysql-real-escape-string.php

          Sinon tu peux aussi faire un echo de la variable $rq pour vérifier comment elle est envoyé (juste le temps de faire des tests).
          0
          1. déjà essayé :-(

            pour ce qui est de la variable elle est envoyée avec les caractères spéciaux

            Ce qui est étonnant c'est qu'il proteste pour text mais pas pour title qui est pourtant avant lui...
            0
            1. autre fait étonnant: si j'introduis la chaine par phpmyadmin, il n'y a pas le moindre problème
              0
              1. Tu peux afficher le message d'erreur complet?
                Es-tu sur d'avoir bien mis le même nom dans le formulaire ET dans ta requête?
                Par exemple:
                name="texte"
                et
                $_POST['text']

                (Je dis ça à tout hasard)
                0
              2. le message d'erreur:
                Incorrect string value: '\xE9venem...' for column 'text' at row 1

                pour ce qui est du formulaire je suis sur puisque lorsque je fais echo rq;, j'obtiens bien tout le contenu de ma chaine
                0
              3. Tu as bien le même encodage sur tout tes fichiers?

                Tu peux vérifier celui-ci avec entre autre Notepad++ (et je pense la majorité des éditeurs de texte).
                0
            2. ok tu as raison, plusieurs des fichiers include placés dans ma page n'étaient pas encodés en utf-8, maintenant ça marche comme sur des roulettes...
              0
              1. regarde si ta bien mis ton string sinon voila ton erreur........

                XD

                Bon ok -------> []
                -1