Посмотрите ниже моего кода. Я пытаюсь связать массив paramenters к моему подготовленному оператору. Я озирался в сети и вижу, что должен использовать call_user_func_array, но не могу заставить его работать. Ошибка, которую я получаю: "Первым аргументом, как ожидают, будет допустимый обратный вызов, 'Массив' был дан", я могу быть неправым, но я предполагаю, что первым аргументом может быть массив, и возможно это сообщение об ошибке вводит в заблуждение. Я думаю, что проблема - то, что мой массив находится в некоторым образом в отказе. Кто-либо может видеть то, что я делаю неправильно? Спасибо.
$type = array("s", "s");
$param = array("string1","anotherstring");
$stmt = $SQLConnection->prepare("INSERT INTO mytable (comp, addl) VALUES (?,?)");
$params = array_merge($type, $param);
call_user_func_array(array(&$stmt, 'bind_param'), $params);
$SQLConnection->execute();
Я не знаю, почему вы должны использовать call_user_func_array
, но это уже другая история.
Единственное, что может быть неправильным в на мой взгляд, вы используете ссылку на объект. Предполагая, что вы используете PHP 5. *, это не обязательно:
call_user_func_array(array($stmt, 'bind_param'), $params);