SET NAMES 'utf8' unter MySqli

Spelmann

Erfahrenes Mitglied
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:
PHP:
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?
 
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.
 

Neue Beiträge

Zurück