PDO::execute() - передать массив в placeholder

Solid

Drosera anglica
PDO::execute() - передать массив в placeholder

Всем привет...

Не нашёл в доке решения, вполне возможно можно сделать через bindParam, но я тоже пока не знаю как это решить... И так проблема собственно вот в чём:
PHP:
$db_pro = $db->prepare("
				SELECT 
				product_id, 
				FROM products 
				WHERE category_id IN(".join($pids, ',').") 
			");
			
			$db_pro->execute();
Очень упрощённый вариант запроса. Как вы можете заметить, в запросе используется встроенная подстановка массива состоящего из integer-ов, который сливается в один string разделённый ",". Мне кажется, что тоже самое можно решить при помощи execute() или bindParam().
Прошу помочь, заранее благодарен, Дмитрий.
 

hermit_refined

Отшельник
если только сформировать строку из count($pids) '?' разделенных ',' - и потом execute($pids).
что это некрасиво и неудобно - не надо говорить, я это и так знаю ;-)
 

zerkms

TDD infected
Команда форума
Solid
отнаследовать от базового PDOStatement свой класс и реализовать в нём необходимый функционал
 

hermit_refined

Отшельник
prepared на стороне сервера заведомо проигрывает в удобстве манипуляциям на стороне клиента. компромис - да, дописывание необходимого функционала.
в случае массива целых чисел - разумно не использовать prepared вовсе (т.е. приводить к типу + implode).
в случае массива строк - остается только тот способ, о котором я написал.
 
Сверху