php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.03.2005, 19:49  
Gast
 
Beiträge: n/a
Standard utf-8 in mysql. DRINGEND!!!

Hi

Ich habe leider folgendes Problem.

Ich verwende UTF-8 und soweit klappt das auch bloß in mysql nicht.

Wenn ich dort äöü eintippe gibt er mir ein Fragezeichen an dieser Stelle wo normal ä,ö oder ü stehen müsste.

Wie kann ich machen das er dort auch UTF-8 macht?

Ich verwende für Mysql die oop also mit Klassen.

Diese hab ich mal hier mit hinzugefügt.

PHP-Code:
<?php

class DB {

//Variablen
    
var $sqlhost;
    var 
$sqluser;
    var 
$sqlpwd;
    var 
$sqldb;
    var 
$show_error    1;

//Constructor
function DB($db_host="" $db_user="" $db_pass="" $database=""){
    
$this->host $db_host;
    
$this->user $db_user;
    
$this->pwd  $db_pass;
    
$this->db   $database;
    
$this->DbConnect();
}

//Connecten
function DbConnect(){
    
$this->con = @mysql_connect($this->host$this->user$this->pwd);
if(!
$this->con) {
    
$this->error("Keine Verbindung m&ouml;glich");
}else{
    
$this->SelectDb();
}
}

//Datenbank ausw�len
function SelectDb(){
if(!@
mysql_select_db($this->db$this->con)) {
    
$this->error("Konnte die Datenbank ".$this->db." nicht ausw&auml;hlen!");
}else{
    
$result 1;
}
    return 
$result;
}

//Funktion fr die Fehlerausgabe
function geterrdesc() {
    
$this->error mysql_error();
    return 
$this->error;
}

//SQL-Abfrage starten
function query($sql){
if(!
$this->query = @mysql_query($sql$this->con)) {
    
$this->error("Unzul&auml;ssiger Sql-Befehl: ".$sql);
}
    return 
$this->query;
}

function 
unbuffered_query($sql){
if(!
$this->query = @mysql_unbuffered_query($sql$this->con)) {
    
$this->error("Unzul&auml;ssiger Sql-Befehl: ".$sql);
}
    return 
$this->query;
}

function 
query_first($sql){
if(!
$this->query = @mysql_query($sql$this->con)) {
    
$this->error("Unzul&auml;ssiger Sql-Befehl: ".$sql);
}
    
$returnarray $this->fetch_array($this->query);
if(!
is_array($returnarray)) {
    return 
false;
}else{
    return 
$returnarray;
}
}

//Ressourcen Fetchen
function fetch_array($query) {
    
$this->fetch_array mysql_fetch_array($query);
    return 
$this->fetch_array;
}

//Zälen
function fetch_row(){
    
$rows = @mysql_num_rows($this->query);
    return 
$rows;
}

//Zeilen mit Wirkung
function affected_rows(){
    
$affrows = @mysql_affected_rows($this->con);
    return 
$affrows;
}

//Letzte AUTO_INCREMENT ID einer INSERT Abfrage holen
function insert_id(){
    
$insid = @mysql_insert_id($this->con);
    return 
$insid;
}

//Mysql Version herausfinden
function mysqlversion() {
if (
$this->con$version $this->query_first("SELECT VERSION() AS `version`");
    
$this->version $version[version];
if (!
$this->version$this->version "unbekannt";
    return 
$this->version;
}

//Fehlerausgabe von Mysql
function error($errormsg) {
    global 
$version;
    
$this->errdesc mysql_error();
    
$errormsg "[b]Datenbank Fehler im Aquila Cms V.$version:[/b] $errormsg\n
"
;
    
$errormsg .= "[b]Mysql Fehler:[/b] $this->errdesc\n
"
;
    
$errormsg .= "[b]Mysql Version:[/b] ".$this->mysqlversion()."\n
"
;
    
$errormsg .= "[b]Php Version:[/b] ".phpversion()."\n
"
;
    
$errormsg .= "[b]Datum:[/b] ".date("d.m.Y, H:i")."\n
"
;
    
$errormsg .= "[b]Aktuelles Verzechnis:[/b] ".getenv("REQUEST_URI")."\n
"
;
if (
$this->show_error)
    
$errormsg "$errormsg";
else
    
$errormsg "\n\n";
die(
"[b]Datenbank Fehler[/b]

"
.$errormsg."");
}

//Connection closen
function CloseCon(){
    
$this->con mysql_close();
}
}

$db = new db("$sqlhost","$sqluser","$sqlpwd","$sqldb");

?>
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.03.2005, 01:01  
Gast
 
Beiträge: n/a
Standard Re: utf-8 in mysql. DRINGEND!!!

Zitat:
Zitat von Speedrider
Wie kann ich machen das er dort auch UTF-8 macht?
Wo ist 'dort'? Kommandozeile?
  Mit Zitat antworten
Alt 25.03.2005, 01:06  
Gast
 
Beiträge: n/a
Standard

Nee, in einer mysql Datenbank stehen die Umalute und diese werden aber nicht richtig dargstellt. Also muss ich die in UTF-8 umwandeln. Ich weiß blos nicht wie.
  Mit Zitat antworten
Alt 25.03.2005, 01:13  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Speedrider
Nee, in einer mysql Datenbank stehen die Umalute und diese werden aber nicht richtig dargstellt.
Solche Aussagen kann ich nicht nachvollziehen. Du behauptest also daß der Text korrekt in der DB steht, obwohl er nicht richtig angezeigt wird?

Mit welchem Zeichensatz arbeitet Dein MySQL überhaupt?
Zitat:
Also muss ich die in UTF-8 umwandeln. Ich weiß blos nicht wie.
utf8_encode -- Encodes an ISO-8859-1 string to UTF-8
utf8_decode -- Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1.
  Mit Zitat antworten
Alt 27.03.2005, 01:17  
Gast
 
Beiträge: n/a
Standard

Hi

Sry das ich jetzt erst antworte habe leider keine Mail bekommen.

Meine Db hat irgedwas mit ISO welches genau weiß ich leider nicht.

In der Datenbank steht des wort so drin wie es dargstellt werden soll.

Also z.B. Löschen.


Dort wo dan des ö ist befindet sich ein fragezeichen.

In der Xml deklaration ist UTF-8 eingestellt und per php wurde der header auch auf UTF-8 gestellt also alles ist auf Utf-8 auser die Datenbank.

Was mir besonderst wichtig ist. Die Darstellung soll überall richtig gehen also auch wenn die DB nen anderen Typ als ISO-xxxx-x hat. also z.B. es schon auf UTF-8 gestellt ist.

Danke für die Hilfe.

Hoffe du hast es nun verstanden.
  Mit Zitat antworten
Alt 27.03.2005, 09:14  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Speedrider
Meine Db hat irgedwas mit ISO welches genau weiß ich leider nicht.
Welche Charsets stehen denn überhaupt zur Verfügung?

EDIT:
eben mal ein bißchen gesucht. Wenn ich das richtig deute, steht UTF-8 erst ab mysql 4.1.x zur Verfügung.
  Mit Zitat antworten
Alt 27.03.2005, 14:54  
Gast
 
Beiträge: n/a
Standard

Hallo

Ich besitze die neuste stabile Mysql Version.

Und euhm kannst du mir mal erklären was Charsets sind?

Es muss halt überall funktionieren, weil ich das Script später veröffentlichen will.

Natürlich muss dann 4.1.x installiert sein.
  Mit Zitat antworten
Alt 27.03.2005, 20:56  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Speedrider
Und euhm kannst du mir mal erklären was Charsets sind?
charset = Zeichensatz
  Mit Zitat antworten
Alt 27.03.2005, 21:09  
Gast
 
Beiträge: n/a
Standard

Ok bei phpmyadmin steht dort.

MySQL-Zeichensatz: UTF-8 Unicode (utf

Seltamerweiße macht er aber drotzdem Umlaute nicht sonder stellt sie als Fragezeichen her.

Aber ein Status aufruf per php habe ich auch schon gemacht dort sagt er das ich latin1 habe.

Es ist wichtig das die darstellung auf jeder Mysql von der Versin 4.1 geht.

Da wie oben schonmal gesagt ich das Script veröffentlichen will.
  Mit Zitat antworten
Alt 27.03.2005, 21:25  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Speedrider
MySQL-Zeichensatz: UTF-8 Unicode (utf
Seltamerweiße macht er aber drotzdem Umlaute nicht sonder stellt sie als Fragezeichen her.

Aber ein Status aufruf per php habe ich auch schon gemacht dort sagt er das ich latin1 habe.
Teste das doch bitte erst mal auf der Kommandozeilenebene, indem Du ein INSERT mit Daten machst, die garantiert UTF-8 Strings beinhalten, um Scriptfehler auszuschließen.

Im Weiteren sollte Dein PHP ebenfalls den Umgang mit Multibyte-Strings beherrschen.
http://www.php.net/manual/de/ref.mbstring.php

MySQL muß ebenfalls auf UTF-8 vorbereitet werden:
http://dev.mysql.com/doc/mysql/en/charset.html
http://dev.mysql.com/doc/mysql/en/charset-server.html
http://dev.mysql.com/doc/mysql/en/charset-table.html

Bezüglich UTF-8:
Um das Beispiel (ohne MySQL)
http://test.php-help.info/test-35/
korrekt darzustellen, mußte ich selbst einige Bocksprünge veranstalten, um überhaupt erst mal die griechischen Zeichen als UTF-8 abzuspeichern. Bei anfänglichen Versuchen hatte ich auch nur einen Sack voll Fragezeichen im Fenster, bis ich meinen Editor soweit hatte, daß er mit Unicode umgehen wollte...

Es gibt also einiges zu bedenken...
  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
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
[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
PHP 5.1.2 mySQL 5.0.19 MS-SQL 2005 IIS 6.0 Shakaar PHP-Fortgeschrittene 10 26.03.2006 22:23
[Erledigt] Kein Zugriff über ODBC mit der IP-Adresse auf MySql DB Datenbanken 4 09.02.2006 11:04
[Erledigt] Zu blöd um MySQL in PHP einzurichten? Apache Server PHP Tipps 2006 18 30.01.2006 23:39
Mysql 4.1.x unter php 4.3.9 Datenbanken 3 15.11.2005 13:49
Wieso funktioniert mein MySQL nicht mehr ? Skazi Datenbanken 1 09.11.2005 14:49
[Erledigt] Schnittstelle zwischen PHP und MySQL klappt net !!! Datenbanken 16 16.10.2005 14:24
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
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
[Erledigt] Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35
PHP5 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql äöü, mysql äöü fragezeichen, mysql utf8 fragezeichen, sql befehl um auf utf-8, unbekannter zeichensatz: 'utf' mysql, sql utf8 befehl, mysql ä ö ü utf, db return result utf8, sql php fragezeichen, utf 8 unbekannter zeichensatz mysql, mysql ä ö ü msaccess, query utf8, mysql charset_server, sql äöü return, php query datum utf8, mysql zeichensatz utf-8 ändern, utf8_swedish_ci, php-abfrage in utf einstellen, sql utf8 fragezeichen, fetch_array utf8

Alle Zeitangaben in WEZ +1. Es ist jetzt 04:04 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.