benutze es jetzt so
%Vor% Ich werde versuchen, mit $command->bindValue()
method zurück zu kommen.
Nachdem ich in meinen Projekten einige Male auf dieses Problem gestoßen bin, habe ich die folgende Yii-Arbeit mit CDbCriteria, die ein wenig hacky ist, aber die Sicherheit der Param-Zählung bietet, gefunden.
Bei Anwendung auf Ihr Beispiel wäre mein Code:
%Vor%AKTUALISIEREN
Es gibt tatsächlich einen viel saubereren Weg, dies in Yii eingebaut zu machen:
%Vor%Siehe Google Docs
Die Verwendung der Methode von Yii, die in CDbCommand kettet, um Ihre Abfrage zu erstellen (wie in Uday Sawants Antwort), ist im Allgemeinen eine gute Wahl. Wenn es nicht ideal ist, die Abfrage Stück für Stück zu konstruieren, ist es eine gute Alternative, Ihr Array von Parametern zu verflachen, damit Sie den SQL-Injection-Schutz nicht umgehen, so:
%Vor%In diesem Beispiel sind die letzte SQL und Argumente:
%Vor%In Projekten, in denen die Verwendung von Raw SQL der bevorzugte Standard ist, besteht der größte Vorteil darin, dass Sie dies als Dienstprogrammfunktion bündeln und für jede Abfrage wiederverwenden können. Es ist eine Schande, dass Yii Array-Argumente nicht automatisch auf diese Weise erweitert, aber Sie können diese Unterstützung auch selbst Projekten hinzufügen, die direkt PDO verwenden.