SQLSTATE[22007]: Ungültiges Datums-/Uhrzeitformat: 1366 Falscher Zeichenfolgenwert: '\xAC15\xE9\x9B\x86...' Lösung

SQLSTATE[22007]: Ungültiges Datums-/Uhrzeitformat: 1366 Falscher Zeichenfolgenwert: \'\\xAC15\\xE9\\x9B\\x86...\' Lösung -1

Bei der Datenerfassung und -eingabe stoßen wir häufig auf: Ungültiges Datums-/Uhrzeitformat: 1366 Fehler „Falscher Zeichenfolgenwert“. Dies ist ein Problem mit der Datenbank oder der Programmcodierung.

Viele Programme verwenden die Standard-UTF-8-Kodierung, um die UTF-8-Kodierung zu ändern inDamit lassen sich die meisten Probleme lösen.

So erzwingen Sie utf8mb4 in MySQL

Um die Verwendung des Zeichensatzes utf8mb4 in MySQL zu erzwingen, können Sie den Zeichensatz der Datenbank, der Tabelle und der Verbindung mit diesen einfachen Schritten auf utf8mb4 konfigurieren. Die einfachste Methode ist die folgende:

1. Ändern Sie die MySQL-Konfigurationsdatei

  • Suchen Sie die MySQL-Konfigurationsdatei (normalerweise my.cnf oder my.ini, die sich in /etc/mysql/my.cnf oder /etc/my.cnf usw. oder im MySQL-Installationsverzeichnis unter Windows befinden kann).
  • Fügen Sie der Konfigurationsdatei den folgenden Inhalt hinzu oder ändern Sie ihn:
    [Client] Standardzeichensatz = utf8mb4 [mysql] Standardzeichensatz = utf8mb4 [mysqld] Zeichensatzserver = utf8mb4 Sortierserver = utf8mb4_unicode_ci init_connect = 'SET NAMES utf8mb4'

     

  • Starten Sie nach dem Speichern den MySQL-Dienst neu:
    sudo service mysql restart

    Oder (unter Windows) starten Sie MySQL im Services Manager neu.

2. Festlegen des Standardzeichensatzes für neue Datenbanken und Tabellen

  • Geben Sie beim Erstellen einer neuen Datenbank utf8mb4 an:
    DATENBANK ERSTELLEN meine_Datenbank ZEICHENSATZ utf8mb4 SORTIERE utf8mb4_unicode_ci;
  • So ändern Sie den Zeichensatz für eine vorhandene Datenbank:
    ALTER DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • So ändern Sie den Zeichensatz für eine vorhandene Tabelle:
    ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3. Stellen Sie sicher, dass die Clientverbindung utf8mb4 verwendet

  • Legen Sie beim Herstellen einer Verbindung mit MySQL den Verbindungszeichensatz fest:
    Namen festlegen utf8mb4;
  • Wenn Sie eine Programmiersprache (wie PHP, Python) verwenden, stellen Sie sicher, dass in der Verbindungskonfiguration utf8mb4 angegeben ist:
    • PHP (PDO):
      $pdo = neues PDO("mysql:host=localhost;dbname=meine_datenbank;charset=utf8mb4", "Benutzername", "Passwort");
    • Python (MySQL-Konnektor):
      mysql.connector importieren
      conn = mysql.connector.connect(host="localhost", database="my_database", user="Benutzername", password="Passwort", charset="utf8mb4")

4. Überprüfen der Zeichensatzeinstellungen

  • Überprüfen Sie den globalen Zeichensatz:
    VARIABLEN WIE „character_set%“ ANZEIGEN;
    VARIABLEN WIE „collation%“ ANZEIGEN;
  • Stellen Sie sicher, dass character_set_server, character_set_database usw. utf8mb4 anzeigen und collation_server utf8mb4_unicode_ci ist.

Zusammenfassung der einfachsten Methode

  • Ein-Schritt-Lösung: Ändern Sie die Datei my.cnf, fügen Sie die obigen Konfigurationen [client], [mysql] und [mysqld] hinzu und starten Sie MySQL neu. Dadurch wird allen neu erstellten Datenbanken und Tabellen standardmäßig die Verwendung von utf8mb4 ermöglicht, und die Clientverbindungen werden ebenfalls automatisch angepasst.
  • Vorhandene Tabellen schnell reparieren: Führen Sie ALTER-Anweisungen für vorhandene Datenbanken und Tabellen aus, um sicherzustellen, dass alle Daten in utf8mb4 gespeichert werden.
  • Beachten: Wenn sich Daten in der Datenbank befinden, sichern Sie die Daten, bevor Sie ALTER TABLE ausführen, um Datenverlust durch Zeichenkonvertierung zu vermeiden.

Wenn Sie auf ein bestimmtes Problem stoßen (z. B. eine ungültige Konfiguration oder verstümmelte Daten), geben Sie bitte weitere Details an, damit ich Ihnen bei der weiteren Fehlerbehebung helfen kann!

Was soll ich tun, wenn ich im Apple CMS auf SQLSTATE[22007] stoße: Ungültiges Datums-/Uhrzeitformat: 1366?

Wenn Sie pgcms zur Datenerfassung verwenden, kann der Fehler SQLSTATE[22007] auftreten: Ungültiges Datums-/Uhrzeitformat: 1366.

Die Lösung ist einfach. Bearbeiten Sie im Verzeichnis /application des Programms die Datei database.php

Standardmäßig wird die Datenbankkodierung verwendetÄndern Sie es einfach in utf8mb4!

// Die Datenbankkodierung ist standardmäßig auf UTF-8 eingestellt.
'Zeichensatz' => 'utf8mb4',

Punktzahl

Das ist eine gute Idee

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * Mark