これは、call_user_func_array
の変更によって引き起こされる厄介な状況です。 PHP 5.4での動作(想定する必要があります):ドキュメント
これは醜いですが、bind_param
を呼び出すと機能します このように:
$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]);
}
私はあなたがおそらくそうするのと同じくらいこれを嫌います。 mysqli
から切り替えることをお勧めします PDO
へ これは、変数パラメーターをより適切に処理します(そして、私の意見では、一般的に優れた構文を持っています):
$pdo = new PDO('mysql:host=localhost', 'username', 'password');
$stmt = $pdo->prepare($selectedstudentanswerqry);
$stmt->execute($parameters);
$selectedstudentanswernum = $stmt->rowCount();