ChrisB: Datenbenkverbindung mit mysqli-Extension

Beitrag lesen

Hi,

  1. Ich habe im php-Header utf-8 als Codierung angegeben, zusätzlich hat die entstehende Seite ein "<meta http-equiv="content-type" content="text/html; charset=utf-8" />", die Datenbank hat Standartmäßig als Kollation "utf8_unicode_ci". Zusätzlich hat jede Zeile der Tabelle die selbe Kollation. Ich wüßte also nicht, wo ich NOCH utf-8 als Kodierung einstellen soll.

In der Verbindung zur Datenbank - PHP und MySQL muessen sich auch darauf verstaendigen, in welchem "Dialekt" sie sich unterhalten.

Was muß ich denn tun/ändern, damit Köln auch als Köln in der DB steht, wenn es via php zur Datenbank kommt?

Zum Beispiel ueber mysqli::options kannst du ein MYSQLI_INIT_COMMAND angeben, dass nach dem Herstellen der Verbindung ausgefuehrt werden soll.
Und zum setzen der Kodierung fuer die Verbindung verwendet man das MySQL-Statement SET NAMES.

Heißt das etwa jetzt, daß ich mich nicht mehr um SQL Injection kümmern muß? Oder anders ausgedrückt: Ist das, was auf der mysql_real_escape_string-Seite im PHP-handbuch unter Beispiel 3 steht, jetzt zu vergessen, wenn ich bei mysqli bleibe???

Wenn du bei Prepared Statements bleibst - ja.

Wie Sven aber gerade schon sagte, wenn du bspw. ueber mysqli_query() direkt eine Query an die Datenbank absetzt, dann musst du dich um das Escaping wieder selber kuemmern.

MfG ChrisB

--
„This is the author's opinion, not necessarily that of Starbucks.“