Я использую PDO для выполнения оператора с предложением IN
, которое использует для него значения массива:
$in_array = array(1, 2, 3);
$in_values = implode(',', $in_array);
$my_result = $wbdb->prepare("SELECT * FROM my_table WHERE my_value IN (".$in_values.")");
$my_result->execute();
$my_results = $my_result->fetchAll();
Вышеприведенный код работает отлично, но мой вопрос в том, почему это не так:
$in_array = array(1, 2, 3);
$in_values = implode(',', $in_array);
$my_result = $wbdb->prepare("SELECT * FROM my_table WHERE my_value IN (:in_values)");
$my_result->execute(array(':in_values' => $in_values));
$my_results = $my_result->fetchAll();
Этот код вернет элемент, который my_value
равен первому элементу в $in_array
(1), но не остальным элементам в массиве (2 и 3).