# SET NAMES 'utf8' unter MySqli



## Spelmann (2. September 2011)

Ich weiß, es gibt tausend Einträge zu UTF8 und Umlauten. Mir hat nix geholfen. Hab aber auch nicht alle Lösungen verstanden.
Nach stundenlanger Suche und wilden Versuchen frag ich jetzt einfach mal.

Fakten

PHP Datei ist UTF8 codiert
Meta charset ist UTF8
Kollationen der Tabelle und der Felder sind UTF8
Nach meinem Verständnis sollte doch alles passen.

Trage ich aber via *PHPMyAdmin* Datensätze mit Umlauten ein, werden diese nicht mit Umlauten ausgegeben (Fragezeichen in Raute).

Übergebe ich die Datensätze via *PHP Formular*, sind die Umlaute unter PHPMyAdmin kryptisch, werden aber von der Seite wiederum korrekt ausgegeben.

Ich würde es nun gerne mal mit _mysql_query( "SET NAMES 'utf8'" );_ versuchen, weiß aber nicht wie ich das einsetzen muss.

Hier mein Script:

```
class Singleton{
	static $db = null;
	function holeVerbindung() {
		if (self::$db == null){
			self::$db = new mysqli ('localhost', 'root', 'data4VG');
			}
		return self::$db;
		}
}
$db = Singleton::holeVerbindung();
$db->select_db('meinshop');

if($ergebnis = $db->query('SELECT * FROM `artikel` ORDER by `idArtikel` DESC ')){
	while($zeile=$ergebnis->fetch_object()){
		echo $zeile->bezArtikel." | ".$zeile->preisArtikel;
		}
}
```

Mag mir jemand helfen?


----------



## Napofis (3. September 2011)

http://de.php.net/manual/de/mysqli.set-charset.php

Bei phpMyAdmin kannst du den verwendeten Zeichensatz auf der Startseite festlegen.

Achja und was du da als Singleton bezeichnest würde ich als ein Factory Bezeichnen, mit ein paar Fehlern. ZB wenn du Operation statisch aufrufst solltest du diese auch als solche deklarieren.


----------



## Spelmann (3. September 2011)

Oh weh. So simpel.
_$db->set_charset("utf8")_

Vielen Dank Dir.

Hast Du noch einen weiterführenden Link zu deiner Anmerkung betreffs der Singleton Klasse (statische Deklaration). Ich hatte mir das Ganze aus einem Tutorial kopiert, wo die Funktionsweise aber nicht weiter beschrieben wurde. Lief nur prima und ich bin dabei geblieben.


----------



## Napofis (3. September 2011)

Hier findest du eine gute Erklärung zu beiden, also Factory Methode und Singleton.

http://www.php.net/manual/de/language.oop5.patterns.php


----------

