Esta é uma situação complicada causada pela alteração de
call_user_func_array
comportamento no PHP 5.4 (tenho que assumir): Documentação
Por mais feio que seja, funcionará para chamar
bind_param
Por aqui:$selectedstudentanswerqry .= ' WHERE ' . implode(' AND ', $where);
global $mysqli;
$stmt =$mysqli->prepare($selectedstudentanswerqry);
if (count($where) === 1) {
$stmt->bind_param($parameterTypes, $parameters[0]);
}
else if (count($where) === 2) {
$stmt->bind_param($parameterTypes, $parameters[0], $parameters[1]);
}
else if (count($where) === 3) {
$stmt->bind_param($parameterTypes, $parameters[0], $parameters[1],
$parameters[2]);
}
Eu odeio isso tanto quanto você provavelmente odeia. Eu sugiro mudar de
mysqli
para PDO
que lida com parâmetros variáveis de uma maneira muito mais agradável (e tem sintaxe superior em geral, na minha opinião):$pdo = new PDO('mysql:host=localhost', 'username', 'password');
$stmt = $pdo->prepare($selectedstudentanswerqry);
$stmt->execute($parameters);
$selectedstudentanswernum = $stmt->rowCount();