Strings mit Umlauten in DB schreiben - General Error

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Ghost Walker
Mitglied
Beiträge: 7
Registriert: 12.09.2006 02:55

Strings mit Umlauten in DB schreiben - General Error

Beitrag von Ghost Walker »

Hallo,

einige User drängen mich meinen Mod an die derzeitige phpBB3 RC version anzupassen. Beim Ausführen des Update Skripts, der ein paar Tabellen erstellt und dort Daten speichert, wird ein "General Error" Fehler mit folgendem Inhalt ausgegeben:

Code: Alles auswählen

SQL ERROR [mysql4]

Incorrent string value: '\xFCberge...' for column 'config_value' at row 1 [1366]

SQL

INSERT INTO 'phpbb3_gum_config' VALUES (... und so weiter.......)
Im String sind Umlaute enthalten (in dem Fall ist das Wort da oben "übergeben"), die das Forum wohl irgendwie nicht annehmen will.

Da mich die Zeit drängt, würde ich mich sehr freuen, wenn mir jemand helfen könnte.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

Ein Fall für den BugTracker
kein Support per PN
Ghost Walker
Mitglied
Beiträge: 7
Registriert: 12.09.2006 02:55

Beitrag von Ghost Walker »

Das heißt, es könnte ein Bug sein? Ich bin aber doch sicher nicht der erste, der Strings mit Umlauten über $db->sql_query() schreibt?

PS: Muss ich den String erst durch die Funktion $utf8_normalize_nfc() schicken? Ich habe ein array, wie mache ich das? (welche Parameter)
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Moin,

Dein Installer muss im Format UTF-8 ohne BOM abgespeichert werden, wenn er Umlaute erhält.

Siehe auch --> KB:166
Ghost Walker
Mitglied
Beiträge: 7
Registriert: 12.09.2006 02:55

Beitrag von Ghost Walker »

Keine Änderung. Der selbe Fehler, obwohl so gespeichert, wie du es gesagt hast.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

So, die Glaskugeln sind aus.

Verlinke uns mal die entsprechende php Datei als TXT Datei.
Ghost Walker
Mitglied
Beiträge: 7
Registriert: 12.09.2006 02:55

Beitrag von Ghost Walker »

Das wollte ich gerade machen

Hier eine abgespeckte Version:

Edit by Wuerzi: Link auf Userwunsch entfernt.
Zuletzt geändert von Würzi am 03.08.2010 10:54, insgesamt 1-mal geändert.
Grund: Link auf Userwunsch entfernt
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hm, schau dir mal meinen F1 MOD an.
Genauer das File: root/install_f1webtipp.php

Dort verwende ich auch diese Technik, muss aber das ganze auf mysql < 4.1.3 und => 4.1.3 testen bevor ich es in die Datenbank schicke ( Binär ablegen oder mit UTF8 Support )

Link --> F1 WebTipp

Dort findest Du später auch diesen Teil:

Code: Alles auswählen

	// Insert all drivers into formel_drivers table 
	$sql = 'INSERT INTO '.$table_prefix."formel_drivers (driver_id, driver_name, driver_img, driver_team) VALUES 
		(1, 'Alonso, Fernando', '', 1),
		(2, 'De la Rosa, Pedro', '', 1),
		(3, 'Paffett, Gary', '', 1),
		(4, 'Hamilton, Lewis', '', 1),
		(5, 'Kovalainen, Heikki', '', 2),
		(6, 'Fisichella, Giancarlo', '', 2),
		(7, 'Piquet Jr., Nelson', '', 2),
		(8, 'Zonta, Ricardo', '', 2),
		(9, 'Räikkönen, Kimi', '', 3),
Der Fahrer "Räikönnen" hat auch Umlaute....und das funktioniert bisher ;-)
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“