Ankündigung

Einklappen
Keine Ankündigung bisher.

Umlaute in MySQL und bei PHP

Einklappen

Neue Werbung 2019

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

  • Umlaute in MySQL und bei PHP

    Hallo,
    wenn ich über die Konsole in meine mySQL Datenbank Umlaute ( Ä, Ö, Ü) eingetragen haben, wurden sie auch korrekt in der Konsole wieder ausgegeben. Nur wenn ich diese Datensätze dann per PHP in Tabellen verpackt habe, wurde die Zeichen nicht angezeigt. Dies konnte ich einfach lösen indem ich in dem PHP-Script utf8_encode() eingetragen habe. Habe ich jedoch per PHP von einem Formular die Daten ein die Datenbank eingetragen, wurden die Umlaute nicht übernommen. Irgendwo hab ich gelesen, dass ich mysql_query("SET NAMES 'utf8'") und mysql_query("SET CHARACTER SET 'utf8'") am Anfang ausführen sollte.

    Nun geht gar nichts mehr. Ich kann keine Umlaute mehr per Konsole oder Formular eintragen und es werden auch keine Umlaute in die Tabelle geschrieben.

    Wie kann ich das machen, dass wenn ich bespielsweise Überprüfung in ein Textfeld eingebe, in der MySQL Datenbank Überprüfung steht und bei Ausgabe per printf von PHP auch die Umlaute korrekt angezeigt werden?

  • #2
    hier der Link zu einem Thread mit einem sehr ähnlichen Thema: http://www.php.de/php-einsteiger/922...ute-mysql.html
    Besonders diese Zeile dürfte für dich interessant sein:
    PHP-Code:
    mysqli_query($db"SET CHARACTER SET 'utf8'"); 

    Kommentar


    • #3
      Wie gesagt, seidem ich mysql_query("SET CHARACTER SET 'utf8'") und mysql_query("SET NAMES 'utf8'") gemacht habe, kann ich auch nicht mehr per insert into tblAuftraege (name) values ("Änderung"); machen. Bevor ich diese Zeile eingefügt hatte, konnt man das noch machen und er hatten den Umlaut in der Datenbank.

      Jetzt steht nur noch ?nderung drin.

      Kommentar


      • #4
        Hier noch der link zur php-funktion mysql_set_charset():http://php.net/manual/de/function.mysql-set-charset.php
        Hier steht auch drin, dass man das mit mysql_query("SET NAMES ...") nicht machen sollte.

        Kommentar


        • #5
          oh mist,

          wie kann ich das jetzt wieder rückgänig machen?

          Kommentar


          • #6
            das funktioniert nicht, dazu brauchst du ein Backup. allerdings kannst du versuchen mysql_set_charset() auszuführen und hoffen, dass das was bringt.

            Kommentar


            • #7
              So jetzt habe ich mysql_set_charset() gemacht und nun kann ich wieder über das Formular Umlauten eingeben.
              Wenn ich im Formular Überprüfung eingebe, steht nun in der Datenbank Ãberprüfung.

              Gebe ich jetzt über die Konsole Überprüfung ein steht in der Datenbank ?berpr?fung.
              Geht das auch irgendwie das in der Datenbank dann immer die Umlaute stehen?

              Kommentar


              • #8
                hier der Link zu einem Thread mit einem sehr ähnlichen Thema: http://www.php.de/php-einsteiger/922...ute-mysql.html
                In diesem Thread wird damit genau dasselbe Problem behandelt, wie du es hast, lies es dir einfach mal durch.

                Kommentar

                Lädt...
                X