Dette er en klæbrig situation, der er forårsaget af ændring af call_user_func_array
adfærd i PHP 5.4 (jeg må antage): Dokumentation
Hvor grimt det end er, vil det virke at kalde bind_param
på denne måde:
$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]);
}
Jeg hader det her lige så meget, som du sikkert gør. Jeg foreslår at skifte fra mysqli
til PDO
som håndterer variable parametre på en meget pænere måde (og har overlegen syntaks generelt, efter min mening):
$pdo = new PDO('mysql:host=localhost', 'username', 'password');
$stmt = $pdo->prepare($selectedstudentanswerqry);
$stmt->execute($parameters);
$selectedstudentanswernum = $stmt->rowCount();