MySQL UPPER() und LOWER() funktionieren nicht mit utf-8-Zeichen

Ich habe eine Suchfunktion, ich will, dass es groß-und Kleinschreibung, einschließlich Zeichen wie éüò etc.

So, ich Transformiere die Eingabe in Großbuchstaben umwandeln, bevor Sie eine Abfrage der Datenbank. Aber MySQL nicht konvertieren die Sonderzeichen richtig.

SELECT * FROM items WHERE UPPER(description) = $input

Ich habe MySQL 5.1.32, ich habe versucht, verschiedene Sortierungen, aber keines scheint richtig zu arbeiten. Gleiche mit LOWER().

CREATE TABLE `items` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `description` text CHARACTER SET utf8 COLLATE utf8_bin,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=187 DEFAULT CHARSET=utf8"

Feld Beschreibung enthält 'hellö'. Mysql wandelt Sie um in 'HELLö'. Ich will 'HELLÖ'.

Poste bitte die Ausgabe von SHOW CREATE TABLE items, der Wert der $input und der Wert der name Sie erwarten, zu entsprechen.
Fertig! (auch geändert, um das Feld Beschreibung statt name)
Sie sind mit UTF8_BIN die groß-und Akzent. Verwenden UTF8_GENERAL_CI statt.

InformationsquelleAutor Henk de Slager | 2010-11-10

Schreibe einen Kommentar