php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-10-2006, 19:49
jonass
 Newbie
Links : Onlinestatus : jonass ist offline
Registriert seit: Oct 2006
Beiträge: 1
jonass ist zur Zeit noch ein unbeschriebenes Blatt
Standard unicode charset & PHP

Hallo,

ich habe ein zml blödes Problem mit Umlauten in meiner MySQL-Db.
Der Zeichensatz ist utf, charset utf_general_ci
Nachdem Aufbau einer Verbindung in PHP Skript setze ich diverse Variablen mit folgendem Query:

PHP-Code:
<?php
mysql_query
("
set names 'utf8';
set collation_connection ='utf8_unicode_ci';
set collation_database='utf8_unicode_ci';
set character_set_client='utf8';
set character_set_results='utf8';
set character_set_server='utf8';
set character_set_database='utf8';
"
);
?>
Umlaute werden in der Datenbank jetzt mit komischen Sonderzeichen gespeichert, muss des sql query im Moment vorher mit utf8_encode(); encoden um Ergebnisse zu erhalten.
Mein Problem ist jetzt dass ich aber auch Datensätze habe wo die Umlaute korrekt gespeichert werden, also ö als ö und nicht als ö.
Das führt nicht selten zu leeren Ergebnissen bei Querrys mit Umlauten.

jetzt ist meine Frage, ob das alles überhaupt so weit richtig passt (zeichensatz, die ganzen variablen nach dem verbindungsaufbau) und ob umlaute als umlaute oder eben mit diesen sonderzeichen gespeichert werden sollen.
ausserdem habe ich gehört, dass wenn man den html zeichensatz im header auf utf-8 setzt, man die sonderzeichen nit escapen muss. ist das richtig?
Mit Zitat antworten
  #2 (permalink)  
Alt 11-10-2006, 21:03
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: unicode charset & PHP

Zitat:
Original geschrieben von jonass
Umlaute werden in der Datenbank jetzt mit komischen Sonderzeichen gespeichert, muss des sql query im Moment vorher mit utf8_encode(); encoden um Ergebnisse zu erhalten.
Und was überrascht dich daran ?
Du willst doch utf8-codierte daten speichern.
Du musst das nur konsequent durchziehen.
Das ci in utf8_general_ci steht für case-insensitiv.
Willst du das wirklich ?
Mit php wirst du noch auf weitere probleme stoßen.


Zitat:
ausserdem habe ich gehört, dass wenn man den html zeichensatz im header auf utf-8 setzt, man die sonderzeichen nit escapen muss. ist das richtig?
Zur lektüre, der standard-blog zum thema Klick mich

greets
__________________
(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")
Mit Zitat antworten
  #3 (permalink)  
Alt 11-10-2006, 21:43
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: unicode charset & PHP

Zitat:
Original geschrieben von jonass
PHP-Code:
<?php
mysql_query
("
set names 'utf8';
set collation_connection ='utf8_unicode_ci';
set collation_database='utf8_unicode_ci';
set character_set_client='utf8';
set character_set_results='utf8';
set character_set_server='utf8';
set character_set_database='utf8';
"
);
?>
Du weißt schon, dass man jeweils nur EINEN Query per mysql_query absetzen kann? Abgesehen davon, dass da ne Menge doppelt ist?!...

PHP-Code:
mysql_query('SET NAMES "utf8"');
header("Content-type: text/html; charset=utf8"); 
Und statt dem normalen htmlentities()-Aufruf
PHP-Code:
htmlentities($textENT_COMPAT'UTF-8'); 
und das war's schon. Collation kannst du beim Anlegen der Tabelle(n) mit angeben, spart dir den expliziten Query.
Mit Zitat antworten
  #4 (permalink)  
Alt 11-10-2006, 22:04
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: Re: unicode charset & PHP

Zitat:
Original geschrieben von ghostgambler
Und statt dem normalen htmlentities()-Aufruf
htmlentities($text, ENT_COMPAT, 'UTF-8');
Wozu überhaupt noch Entities, wenn UTF-8 verwendet wird?
htmlspecialchars zum Entschärfen von HTML-eigenen Zeichen reicht da völlig aus.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 11-10-2006, 23:29
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: Re: unicode charset & PHP

Zitat:
Original geschrieben von wahsaga
Wozu überhaupt noch Entities, wenn UTF-8 verwendet wird?
htmlspecialchars zum Entschärfen von HTML-eigenen Zeichen reicht da völlig aus.
jo ... ka, habs mir angewöhnt >_>
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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