Tengo un problema con PDO al que me gustaría obtener una respuesta después de haber estado plagado por ello durante bastante tiempo.Valores de enlace de PDO para la instrucción MySQL IN
Tome este ejemplo:
estoy vinculante una serie de identificaciones con un comunicado DOP para su uso en un MySQL en un comunicado.
La matriz sería decir: $ values = array (1,2,3,4,5,6,7,8);
La variable de base de datos segura sería $ products = implode (',' $ values);
Así, productos $ entonces serían una CADENA con un valor de: '1,2,3,4,5,6,7,8'
La declaración se vería como:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (:products)
Por supuesto, productos $ estarían obligados a la declaración como : productos.
Sin embargo, cuando la instrucción se compila y los valores obligado, que en realidad se vería así:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN ('1,2,3,4,5,6,7,8')
El problema se está ejecutando todo el interior de la declaración en la que una sola cadena, teniendo en cuenta que yo Lo preparé como valores separados por comas para enlazar a la declaración.
Lo que realmente necesito es:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (1,2,3,4,5,6,7,8)
La única manera realmente puedo hacer esto es mediante la colocación de los valores dentro de la propia cadena sin ellos vinculante, sin embargo sé con certeza que tiene que haber una manera más fácil para hacer esto.
posible duplicado de [PHP PDO: ¿Puedo vincular una matriz a una condición IN()?] (Http: // stackoverflow.com/questions/920353/php-pdo-can-i-bind-un-array-to-an-in-condition) – PhoneixS