Detta är en klibbig situation som orsakas av ändring av call_user_func_array
beteende i PHP 5.4 (jag måste anta): Dokumentation
Hur fult det än är så fungerar det att anropa bind_param
så här:
$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]);
}
Jag hatar det här lika mycket som du förmodligen gör. Jag föreslår att du byter från mysqli
till PDO
som hanterar variabla parametrar på ett mycket trevligare sätt (och har överlägsen syntax i allmänhet, enligt min mening):
$pdo = new PDO('mysql:host=localhost', 'username', 'password');
$stmt = $pdo->prepare($selectedstudentanswerqry);
$stmt->execute($parameters);
$selectedstudentanswernum = $stmt->rowCount();