2015-06-16 3 views
2

Мне любопытно, есть ли способ связать массив параметров сразу?PHP/MySQLi - массив как bind_param

Говоря простыми словами, что-то вроде этого:

$sql = "SELECT * FROM table WHERE id IN (?)"; 
$stmt = $db->prepare($sql); 
$stmt->bind_param("<array>", $array_of_ids); 
$stmt->execute(); 

Мысли?

+0

Не уверен в этом. TBC. – D4V1D

+0

К сожалению, нет, Возможный дубликат: [PHP/MySQL с использованием массива в предложении WHERE] (https://stackoverflow.com/questions/907806/php-mysql-using-an-array-in-where-clause) –

ответ

0

Я не думаю, что вы можете сделать это как таковые, но если вы создали массив значений параметров, так и вы могли бы использовать что-то вроде петли Еогеаспа

$params=array(
    ':id'=>1, 
    ':cat'=>'bananas' 
    ':type'=>100 
); 
foreach($params as $param=>$value)$stmt->bind_param($param,$value); 
0

Начиная с PHP 5.6, это возможно с ... (см. также documentation). Этот оператор распаковывает список при вызове функции, заставляя список действовать как несколько переменных.

Вы можете использовать следующее:

$stmt->bind_param($types, ...$data); 

Это предполагает, что $types это строка, содержащие тип для данных и $data списка с указанным данными для запроса.