Discussion:
Wie übergebe ich Doctrine einen RAW Query?
(zu alt für eine Antwort)
Andre Schmidt
2009-11-13 15:58:58 UTC
Permalink
Hallo,

sorry, aber aus der Dokumentation rund um Doctrine werde ich nicht schlau.

Ich möchte "einfach" einen RAW Query an Doctrine übergeben, genauer
"SET NAMES utf8 COLLATE utf8_general_ci"

Das war einfach. Jedoch alle Beispiele, die ich entweder in der
Dokumentation oder im Netz fand, funktionierten nicht.
$manager = Doctrine_Manager::getInstance();
$manager->openConnection(DSN, 'doctrine');
$manager->setCharset('utf8');
$manager->setCollate('utf8_general_ci');
$manager->setAttribute('model_loading', 'conservative');
Wer kann mir helfen?

Danke und Gruß
André
Sam Kang
2009-11-13 19:19:02 UTC
Permalink
Post by Andre Schmidt
Hallo,
Ich möchte "einfach" einen RAW Query an Doctrine übergeben, genauer
"SET NAMES utf8 COLLATE utf8_general_ci"
Doctrine setzt auf PDO auf.

Also könnte bei dir folgendes klappen:

...
$manager = Doctrine_Manager::getInstance();
$manager->openConnection(DSN, 'doctrine');
$manager->setCharset('utf8');
$manager->setCollate('utf8_general_ci');
$manager->setAttribute('model_loading', 'conservative');
...

jetzt mit PDO weiter:

$con = $manager->connection();
$stmt = $con->execute("SET NAMES utf8 COLLATE utf8_general_ci");

evtl. noch:

print_r($con->errorInfo());

um zu sehen ob es geklappt hat. Das Dumme (oder auch Gute) bei PDO ist, das
jede Connection isoliert ist. D.h. du musst das für jede Instance der Doctrin
machen. Ich verstehe nur nicht warum das setCharset('utf8') nicht geht.


Sam
--
Sufficiently advanced incompetence is indistinguishable from malice
(J. Porter Clark)
Andre Schmidt
2009-11-13 22:17:38 UTC
Permalink
Hallo,
Post by Sam Kang
$con = $manager->connection();
$stmt = $con->execute("SET NAMES utf8 COLLATE utf8_general_ci");
Ja, vielen Dank! Das war es. Jetzt gibt es erstmal keine Probleme.

Gruß
Andre

Loading...