Wie werden MySQL IN-Klauseln mit Zend DB ausgeführt?

8

Ich versuche, Zeilen zu holen, die in einem Array von Ganzzahlen sind, die ich mit Zend Framework 1.11 verwende.

%Vor%

Wenn ich die Methode __toString() von $this->dbSelect verwende, bekomme ich

%Vor%

Dies gibt nur Zeilen zurück, die die Bedingung erfüllen, in der product_ref_id = 10 ist. Wie kann ich die IN-Klausel als

erhalten? %Vor%

oder

%Vor%

mit vorbereiteten Anweisungen von Zend DB, damit ich alle Zeilen im Produkt-ID-Array abrufen kann?

    
danronmoon 30.12.2011, 18:09
quelle

3 Antworten

15

Implodieren Sie das Array nicht, übergeben Sie es einfach:

%Vor%     
ben 30.12.2011, 18:13
quelle
1

Es ist erwähnenswert, dass es zwei Möglichkeiten gibt, WHERE IN clausule in Zend_Db_Select zu verwenden:

  1. Wir können Array als zweiten Parameter übergeben:

    $select->where("column_value IN (?)", $array_of_values)

  2. Oder wir können Array einfach implodieren, um Werte als String zu erhalten:

    $select->where("column_value IN (" . implode(',', $array_of_values) . ")")

M. Hryszczyk 30.12.2011 20:39
quelle
-1
%Vor%     
Deepanshu Agrawal 07.08.2014 12:25
quelle