Ben gerçekten uzun bir süre için onun tarafından boğulmuş sonra bir cevap almak istiyorum PDO ile bir sorunu var.
Bu örneği ele alalım:
Ben MySQL IN deyimi kullanmak için bir PDO açıklamaya kimlikleri bir dizi bağlayıcı ediyorum.
Dizi söylemek olacaktır: $values = array(1,2,3,4,5,6,7,8);
Veritabanı güvenli değişken $products = implode(',' $values); olurdu
'1,2,3,4,5,6,7,8', So, $products sonra bir değeri olan bir STRING olur
Deyimi gibi görünecektir:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (:products)
Tabii ki, $products :products olarak ifadesine bağlı olacaktır.
Deyim derlenmiş ve değerler bağlı olduğunda Ancak, aslında bu gibi görünecektir:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN ('1,2,3,4,5,6,7,8')
Sorun ben açıklamaya bağlamak için virgülle ayrılmış değerler olarak hazırlanmış ki verilen, tek bir dize olarak IN deyimi içindeki her şeyi yürütülüyor olmasıdır.
Ne gerçekten ihtiyacınız olduğunu:
SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (1,2,3,4,5,6,7,8)
Ben gerçekten bunu tek yolu, ancak ben bazı için bunu yapmak için daha kolay bir yolu olmalı olduğunu biliyorum, onları bağlayıcı olmadan dize kendi içinde değerlerini yerleştirerek gereğidir.
Ben tamamen burada işareti eksik olmalı ve ben cevap ne olduğunu görünce kendimi tekme gidiyorum biliyorum!
Şimdiden teşekkürler.