Heim > Datenbank > MySQL-Tutorial > Hauptteil

Detaillierte Erläuterung des Unterschieds zwischen in MySQL gespeicherten Zeichen voller Breite und Zeichen halber Breite

黄舟
Freigeben: 2017-05-28 09:55:22
Original
3100 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die relevanten Informationen zum Unterschied zwischen MySQL dem Speichern von Zeichen voller Breite und Zeichen halber Breite vor.

Leider kann das Unternehmen darauf verweisen hat IM intern getestet. Wenn ein MYSQL_DATA_TRUNCATED-Fehler auftritt, wird der Protokolldatensatz weiterhin angezeigt, wenn mysql_stmt_fetch aufgerufen wird. Aufgrund früherer Erfahrungen sollte dies an der unzureichenden Länge des Bindungsbereichs der angegebenen Ergebnismenge liegen. Ich habe es viele Male überprüft und kein Problem festgestellt. Ich habe entsprechende Beziehungen im Code, wie zum Beispiel char(20). In meinem Code werde ich char buffer[20]array für die Speicherung definieren. Es sieht so richtig und perfekt aus. Ich hatte keine andere Wahl, als jede Datenzeile auszudrucken, die Datensatzzeile zu suchen, in der der Fehler gemeldet wurde, und stellte fest, dass sich die Schriftart von den anderen unterschied. Zum Beispiel:

123456789 (halbe Breite)
123456789 (volle Breite)

Dies wird nicht durch meine Eingabe von Leerzeichen gesteuert, sondern durch die volle Breite und Eingabemethode mit halber Breite. Bei Zeichen voller Breite ist die Länge doppelt so lang wie bei Zeichen halber Breite, und mein MySQL verwendet utf-8, sodass es sich in der Datenbank um ein Zeichen voller Breite handelt, das 3 Byte lang ist.

select length(column) from table_name where…;

Verwenden Sie dies, um die Länge auszudrucken und Sie können sie beurteilen. Zu diesem Zeitpunkt müssen Sie das Problem berücksichtigen, dass die Länge des Typs im Code und die Länge des Datenbankfelds übereinstimmen, z. B. Zeichen voller Breite oder chinesische Zeichen. Char(20) in der Datenbank stellt 20 Zeichen dar, nicht 20 Bytes. Bitte beachten Sie, dass beim Abrufen von Daten nicht alle 20 als Ergebnismengenlänge zum Abrufen von Daten verwendet werden dürfen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Unterschieds zwischen in MySQL gespeicherten Zeichen voller Breite und Zeichen halber Breite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage