Задать вопрос
@coden55

Как передать в запросе preparedstatement к mysql массив значений в IN()?

Пример запроса: SELECT users FROM table WHERE id IN(?)
Погуглив нашел обсуждение проблемы stackoverflow.com/questions/178479/preparedstateme...
из которого становится понятно что без костылей просто так массив не подставить.
Датированы ответы 2-3 года назад, может на текущий момент появилось решение?
Или остается только генерировать preparedstatement с необходимым количеством IN(?,?,?....) под каждый запрос?
  • Вопрос задан
  • 308 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Все так же делается.
И делается это всего лишь в пару строк.

$bind = ['somebind'];
$places = implode(', ', array_fill(0, count($bind), '?'));
$sqlpartial = " where column IN ($places) ";
Ответ написан
@vayho
Если вам уж так влом написать короткую функцию которая заполнит PreparedStatement то используйте какие нибудь библиотеки для работы с SQL. Мне на ум приходит в первую очередь JdbcTemplate из spring-jdbc.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы