Im переводит старый код на новый интерфейс msqli с помощью подготовленных операторов, у меня возникают проблемы с операторами SQL, содержащими предложение IN. Я бы обычно это делал:
$ids = '123,535,345,567,878'
$sql = "SELECT * FROM table WHERE id IN ($ids)";
$res = mysql_query($sql);
Преобразуя это в mysqli и подготовленные заявления, я пробовал ряд решений:
$ids = '123,535,345,567,878'
$ids = implode($ids,',');
$result = $msqli->prepare("SELECT foo,blar FROM table WHERE id IN (?));
$result->bind_param("i", $ids);
$result->execute();
Приведенное выше не позволяет вычислить количество элементов в массиве и изменить количество вопросительных знаков в строке SQL, а вызов bind_parm для каждого элемента массива также не выполняется. Просто использование строки, разделенной запятой, также терпит неудачу.
В Google я не могу найти хорошую документацию, так как вы решили проблему?