Dies ist eine schwierige Situation, die durch die Änderung von call_user_func_array
verursacht wird Verhalten in PHP 5.4 (muss ich annehmen): Dokumentation
So hässlich das auch ist, es funktioniert, bind_param
aufzurufen so:
$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]);
}
Ich hasse das genauso wie du wahrscheinlich. Ich schlage vor, von mysqli
zu wechseln zu PDO
die mit variablen Parametern viel besser umgeht (und meiner Meinung nach im Allgemeinen eine überlegene Syntax hat):
$pdo = new PDO('mysql:host=localhost', 'username', 'password');
$stmt = $pdo->prepare($selectedstudentanswerqry);
$stmt->execute($parameters);
$selectedstudentanswernum = $stmt->rowCount();