Anfängerfrage: Querybuilder -> Where und Array

Hallo!

Begeistert habe ich mir das Tutorial zu yii durchgelesen und bin schon fleißig am herumprobieren.

Allerdings bereitet mir der QueryBuilder noch einige Kopfzerbrechen:




$user = Yii::app()->db->createCommand()

   ->select('id, username')

   ->from('tbl_user')

   ->where('username=:username and password=:password', array(':username'=>2, ':password'=>4));

echo $user->text;



Folgende Anweisung gibt mir immer:


SELECT `id`, `username` FROM `tbl_user` WHERE username=:username and password=:password

zurück.

Wieso werden nicht die Zahlen 2 und 4 eingesetzt? Die "Platzhalter" müssten doch ersetzt werden?


->where('username=:username and password=:password', array(':username'=>'Hugo', ':password'=>'xxx'));

und


->where('username=:username and password=:password', array(':username'=>$this->username, ':password'=>$this->password));

gelingen mir ebenfalls nicht. :(

Was mache ich falsch? (Ich denke das sind Grundlagen, nur stehe ich zurzeit auf dem Schlauch…)

Vielen Dank!

Hi und willkommen,

die Platzhalter werden schon ersetzt - nur siehst du das im Logfile nicht (systembedingt). Du kannst aber in der Konfiguration deiner db-Komponente enableParamLogging aktivieren. Dann siehst du im Logfile, welche Werte an die Platzhalter gebunden werden.

Danke! Da war ich ja doch nicht so falsch… ;)