PHP bind_param с равными массивами, но только одна работа

Я следил за многими записями на форумах.
И у меня есть два разных способа создания массива для привязки, но почему первый способ не работает?

<?php
class BindParam{
private $values = array(), $types = '';

public function add( $type, &$value ){
$this->values[] = $value;
$this->types .= $type;
}

public function get(){
return array_merge(array($this->types), $this->values);
}
}
class db
{
....

$stmt = $conn->prepare(@"SELECT xy FROM xx WHERE yy = ? AND zz = ?");

$bindParam = new BindParam();

$typ ="";
$par;

for( $i = 0; $i < count($params); $i++)
{
$bindParam->add($params[$i][0], $params[$i][1]);//for example 1
$typ .= $params[$i][0];//for example 2
$par[] = $params[$i][1];//for example 2
}
echo "Example1: ";
print_r($bindParam->get());

echo "<br>Example2: ";
$bind_names[] = $typ;
for ($i=0; $i<count($par);$i++)
{
$bind_name = 'bind' . $i;
$$bind_name = $par[$i];
$bind_names[] = &$$bind_name;
}

print_r($bind_names);$return = call_user_func_array(array($stmt,'bind_param'),$bind_names);
//$return = call_user_func_array(array($stmt,'bind_param'),$bindParam->get());
echo "<br>Binding return: ".$return;

.
.
.
}

вывод для примера1:

Пример1: Array ([0] => ss [1] => test [2] => test)
Пример 2: Массив ([0] => ss [1] => test [2] => test)
Обязательный возврат: 1

вывод для примера2:

Пример1: Array ([0] => ss [1] => test [2] => test)
Пример 2: Массив ([0] => ss [1] => test [2] => test)
Предупреждение: параметр 2 для mysqli_stmt :: bind_param () должен быть ссылкой, значение указано в …
Обязательный возврат:

закомментированный код (// $ return = (example2)) не работает.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …