"SET NAMES 'utf-8'" dazu?
PDO bindParam
Einklappen
X
-
Hab mehrere Varianten versucht, das hinzuzufügen
Mit dieser Variante hat Eclipse kein Problem, der PDO Driver mag es allerdings nicht:
Error!: SQLSTATE[42000]: Syntax error or access violation: 1115 Unknown character set: 'utf'
PHP-Code:$dbh->exec('SET CHARACTER SET utf8' );
$dbh->exec('SET NAMES utf-8 ');
Kommentar
-
Diese Variante geht auch nicht:
Error!: SQLSTATE[42000]: Syntax error or access violation: 1115 Unknown character set: 'utf-8'
PHP-Code:$dbh->exec('SET CHARACTER SET utf8' );
$dbh->exec("SET NAMES 'utf-8' ");
Kommentar
-
Versuch das Encoding von eclipse mal auf UTF-8 zu stellen. Übrigens ist es einfacher bei execute ein Array mit den Parametern anzugeben statt mehrmals bindParam aufzurufen.Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]
Kommentar
-
Inzwischen habe ich Eclipse dazu gebracht in utf8 zu encoden.
Der Code sieht wie folgt aus:
PHP-Code:$sql="SELECT DokumentID, Name, Inhalt
FROM dokumente WHERE Team IN :teams
AND Unternehmen= :unternehmen ORDER BY Datum DESC LIMIT 0,15 ";
$dbh->exec("SET CHARACTER SET 'utf8' ");
$dbh->exec("SET NAMES 'utf8' ");
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':unternehmen', $this->unternehmen);
$stmt->bindParam(':teams', $teams);
Error!: SQLSTATE[42000]: Syntax error or access violation:
1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''(\'Geschäftsführung Vertrieb\' ) ' AND Unternehmen= 'ABC' ORDER BY Datum DESC' at line 1
Ich vermute, das liegt daran, dass das Characterset der Tabellen auf latin1_general_ci gesetzt ist. Der Wert für $teams kommt aus der DB.
Bringt es mich weiter, wenn ich alle Tabelle exportiere und mit dem utf8 characterset zurückimportiere?
Kommentar
-
Habe gestern nacht noch alle Tabellen auf utf-8 umgestellt. Mein Eclipse encoded in utf-8.
Ferner habe ich folgendes META Tag gesetzt.
PHP-Code:echo "<META http-equiv='Content-Type' content='text/html; charset=utf-8'>";
Kommentar
-
OffTopic: Original geschrieben von Stonebreaker62
Problem gelöst, habe einen Beitrag von Ghostgambler gefunden, der sehr hilfreich war.
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
Kommentar
Kommentar