Ankündigung

Einklappen
Keine Ankündigung bisher.

Emoji und PHP und SQL - irgendwo hakt es

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Emoji und PHP und SQL - irgendwo hakt es

    Hi!
    Ich hab eine iOS-anwendung die smileys, emoji, in eine mysql Datenbank schreibt. characterset ist auf utf8mb4 eingestellt.

    Wenn ich nun aber folgenden Code ausführe kommt nichts zurück:
    Code:
    $sth = $db->prepare(" SELECT *
                                FROM Benutzer be
                                WHERE   be.nickname= :nickname
                            ");
        $sth->bindParam(':nickname', $nickname, PDO::PARAM_STR);
    Habt ihr da Tipps für mich?
    danke!


  • #2
    Was steht in $nickname? Gibt es tatsächlich Ergebnisse zu diesem Query? Führst du den Query aus? Fetchst du die Ergebnisse?

    Da fehlt noch Code. Außerdem: Wo ist der Bezug zu den Emoji?

    Kommentar


    • #3
      set names = utf8mb4 beim connect löst es

      Kommentar


      • #4
        Eigentlich reicht es, charset=utf8mb4 in der dsn anzugeben.
        Standards - Best Practices - AwesomePHP - Guideline für WebApps

        Kommentar


        • #5
          Zitat von rkr Beitrag anzeigen
          Eigentlich reicht es, charset=utf8mb4 in der dsn anzugeben.
          Jetzt hab ich doch noch ein Problem damit. Ich hoste bei Stato.

          Ich connecte mit PDO:
          Code:
          $db = new PDO('mysql:host=rdbms.strato.de;dbname=DBXXXXX;charset=utf8mb4', 'UXXXXXX', 'passwort', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"));
          und erhalte die Fehlermeldung:
          Code:
          SQLSTATE[HY000] [2019] Can't initialize character set utf8mb4 (path: /opt/RZmysql5/share/mysql/charsets/)

          Liegt das evtl. am PDO-Treiber? Die Mysql-DB von Strato kann utfmb8. Da hab ich schon alles eingestellt was geht.

          Danke!!

          Kommentar


          • #6
            Das SET NAMES sollte eigentlich unnötig sein. Kannst du das in einer lokalen Umgebung nachstellen?
            Standards - Best Practices - AwesomePHP - Guideline für WebApps

            Kommentar


            • #7
              Leider nein. Auf meinem localhost klappt das alles :-/

              Ich hab inzwischen noch einen anderen Webhoster probiert (Netcup). Der meckert das utf8mb4 nicht an, speichert dann meinen String mit Emoji trotzdem falsch. Er ersetzt die Smileys mit "?". Obwohl alle DB+Tabellen auf utf8mb4 stehen.

              Ich verzweifle langsam. Ich würd die blöden unicode-Zeichen auch irgendwie maskieren in PHP, klappt aber auch net was ich da versuch :/

              Kommentar


              • #8
                Baue doch mal den simpelst möglichen Fall und stell das mal vor. Würde mich grundsätzlich auch mal interessieren
                Standards - Best Practices - AwesomePHP - Guideline für WebApps

                Kommentar


                • #9
                  Zitat von rkr Beitrag anzeigen
                  Baue doch mal den simpelst möglichen Fall und stell das mal vor. Würde mich grundsätzlich auch mal interessieren
                  ...was genau meinst du jetzt?

                  Kommentar


                  • #10
                    Ein lauffähiges Beispiel
                    Standards - Best Practices - AwesomePHP - Guideline für WebApps

                    Kommentar


                    • #11
                      http://dev.mysql.com/doc/refman/5.0/...acter-set.html

                      You might see an error like this if you have character set problems:

                      MySQL Connection Failed: Can't initialize character set charset_name
                      This error can have any of the following causes:

                      The character set is a multibyte character set and you have no support for the character set in the client.
                      Welche MySQL Version fährst du denn?
                      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                      Kommentar


                      • #12
                        Zitat von rkr Beitrag anzeigen
                        Ein lauffähiges Beispiel
                        Du beziehst dich jetzt auf das maskieren der Unicode-Zeichen oder? Sorry, da hab ich nichts lauffähiges.

                        Kommentar


                        • #13
                          Zitat von lstegelitz Beitrag anzeigen
                          http://dev.mysql.com/doc/refman/5.0/...acter-set.html



                          Welche MySQL Version fährst du denn?
                          Strato:
                          Server Version: 5.5.37-log - Source distribution
                          Was ist mit "client" in der mysql-Doku gemeint?

                          Kommentar

                          Lädt...
                          X