Ich habe ein Problem mit PDO, auf das ich wirklich gerne eine Antwort bekommen würde, nachdem ich es seit einiger Zeit geplagt habe.PDO-Bindungswerte für MySQL IN-Anweisung
Nehmen Sie dieses Beispiel:
I für die Verwendung in einer MySQL-IN-Anweisung zu einer PDO-Anweisung ein Array von IDs bin verbindlich.
Das Array würde sagen: $ Werte = Array (1,2,3,4,5,6,7,8);
Die datenbanksichere Variable wäre $ products = implode (',' $ values);
So Produkte $ wäre dann ein STRING mit einem Wert von: '1,2,3,4,5,6,7,8'
Die Aussage aussehen würde wie: Produkte:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (:products)
natürlich $ Produkte würden auf die Erklärung als gebunden.
Wenn jedoch die Anweisung kompiliert wird und Werte gebunden, wäre es tatsächlich so aussehen:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN ('1,2,3,4,5,6,7,8')
Das Problem ist es alles in der IN-Anweisung als einzelne Zeichenfolge ausgeführt wird, da ich habe es als durch Komma getrennte Werte vorbereitet, um an die Anweisung zu binden.
Was ich wirklich brauchen, ist:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (1,2,3,4,5,6,7,8)
Die einzige Art, wie ich dies tatsächlich tun kann, ist, indem die Werte innerhalb der Zeichenfolge selbst platzieren, ohne sie zu binden, aber ich weiß sicher, hat es einen einfacheren Weg sein um dies zu tun.
mögliches Duplikat von [PHP PDO: Kann ich ein Array an eine IN() Bedingung binden?] (Http: // stackoverflow.com/questions/920353/php-pdo-kann-ich-binden-ein-Array-zu-einem-in-Bedingung) – PhoneixS