Wie binden Array-Parameter im YII-Framework?

8

Ich habe unten Fall von PHP:

%Vor%

Ich habe yii verwendet, um die Funktion db zur Verfügung zu stellen:

%Vor%

aber das Abfrageergebnis ist inkorrekt, also wenn das wie kann ich tun?

    
Cherry 02.03.2012, 07:12
quelle

3 Antworten

7

benutze es jetzt so

%Vor%

Ich werde versuchen, mit $command->bindValue() method zurück zu kommen.

    
Uday Sawant 02.03.2012 07:41
quelle
6

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

    
Arth 28.03.2014 11:12
quelle
1

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.

    
HonoredMule 29.11.2013 20:35
quelle

Tags und Links