php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.01.2012, 14:52  
Neuer Benutzer
 
Registriert seit: 06.02.2009
Beiträge: 3
chuck befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] UTF8+ MYSQL - Woran liegts?

Hallo,
ich habe bei einem Webhoster eine MYSQL-DB für die ich keine root-Rechte habe und somit nicht die folgenden Grundeinstellungen ändern kann :
Code:
character set client	utf8	
(Globaler Wert)	latin1	
character set connection	utf8	
(Globaler Wert)	latin1	
character set database	latin1	
character set filesystem	binary	
character set results	utf8	
(Globaler Wert)	latin1	
character set server	latin1	
character set system	utf8	
character sets dir	/usr/share/mysql/charsets/	
collation connection	utf8_general_ci	
(Globaler Wert)	latin1_swedish_ci	
collation database	latin1_swedish_ci	
collation server	latin1_swedish_ci
Nun möchte ich von PHP aus Datensätze im unicode-Zeichensatz in die DB schreiben. Die Tabellen sind alle auf utf8_general_ci eingestellt und verwenden MyISAM. Bevor ich nun eine INSERT-Query abschicke setze ich in den utf8-codieten PHP Dateien folgenden Befehl ein:
PHP-Code:
mysql_query(set names 'utf-8'); 
Trotzdem werden die Umlaute in der DB z.B wie folgt gespeichert : "ä" (Anzeige in phpMyAdmin). Die einzige Methode mit der ich diese korrekt speichern kann ist die Verwendung von "mysql_query(utf8_decode($insert_query))";
Das funktioniert zwar erschließt sich mir jedoch nicht. Mache ich irgendwo einen Fehler ? Auf Localhost (XAMPP) funktioniert alles mit utf-8 einwandfrei. Für das editieren und hochladen der PHP-Dateien verwende ich Netbeans.

Geändert von chuck (12.01.2012 um 15:06 Uhr).
chuck ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.01.2012, 16:36  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

das Problem, soweit ich das sehe ist

Code:
character set database	latin1
- vielleicht kannst du daran noch was ändern per phpmyadmin ...

ansonsten

schick bitte als erste Abfrage statt "set names utf8" bitte folgendes :

Code:
SET CHARACTER SET 'utf8'
- noch bevor du die jeweilige Datenbank per mysql_select_db( ) auswählst
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 12.01.2012, 16:46  
Neuer Benutzer
 
Registriert seit: 06.02.2009
Beiträge: 3
chuck befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von eagle275 Beitrag anzeigen
das Problem, soweit ich das sehe ist

Code:
character set database	latin1
- vielleicht kannst du daran noch was ändern per phpmyadmin ...

ansonsten

schick bitte als erste Abfrage statt "set names utf8" bitte folgendes :

Code:
SET CHARACTER SET 'utf8'
- noch bevor du die jeweilige Datenbank per mysql_select_db( ) auswählst
Vielen Dank schonmal für die Antwort. Was ist denn der genaue Unterschied zwischen CHARACTER SET und names ? Ich habe mir dieses set names angewöhnt, habe es in irgendeinem tutorial gelesen in dem es um UTF8 PHP und MYSQL ging. Das character set habe ich soeben ausprobiert und siehe da meine ganzen Umlaute werden falsch angezeigt (logisch da sie alle nicht wirklich UTF-8 sind) - es scheint also zu funktionieren.
chuck ist offline   Mit Zitat antworten
Alt 12.01.2012, 16:54  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Siehe auch hier:
http://www.php.de/adventskalender-20...perlative.html (27: Der ultimative Megakick der Superlative)

LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 12.01.2012, 17:53  
Neuer Benutzer
 
Registriert seit: 06.02.2009
Beiträge: 3
chuck befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank !!! Der Beitrag hat mir sehr viel geholfen !!
chuck ist offline   Mit Zitat antworten
Alt 18.01.2012, 10:44  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

der explizite Unterschied der beiden ist

Set NAMES utf8 schaut zwar optisch quasi identisch aus, setzt aber die Namen nur dann auf utf8 , wenn die gesamte Datenbank auch utf8 IST . was bei dir genau nicht der Fall ist.. set character set erzwingt dies unter allen Umständen und ist daher das Mittel der Wahl
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mysql funktioniert nicht (Erweiterung nicht erkannt!?) pfump Server, Hosting und Workstations 10 17.03.2012 11:07
MySQL -> CSV einlesen automatisiert nomar2408 Datenbanken 1 12.10.2011 03:07
[Erledigt] Datensätze von einer MySQL in eine andere MySQL Datenbank abgleichen Marvin75 Datenbanken 7 10.06.2011 18:00
Mysql Server startet nicht mehr Nicolas2006 Datenbanken 2 20.03.2011 16:03
PHP Zugriff auf MySQL Community Server gewähren daemonTutorials Datenbanken 8 21.02.2011 12:28
MySQL Datentransfer (Dateigroesse 4MB) via Shell Zugang oder einfacher promoterlv Datenbanken 1 14.11.2010 22:12
[Erledigt] PHP bekommt keine Verbindung zu MySQL SaKe Datenbanken 15 20.09.2010 14:45
Mysql fehler bei externen Zugriff SteiniKeule Datenbanken 4 18.06.2010 12:54
Lerne Grundlagen | Quellensammlung cycap PHP Einsteiger 0 12.11.2008 16:23
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MYSQL läuft nur wenn /tmp auf 777 Datenbanken 5 06.07.2005 08:38
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
\set character set utf8\ ab welcher version, mysql set names latin, mysql kollation für ganze datenbank ändern ohne shell-zugriff, character set client globaler wert, phpmyadmin globale werte der db ändern, ändern character_set_database auf latin1

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum