Đây là một tình huống cố định do thay đổi call_user_func_array
hành vi trong PHP 5.4 (tôi phải giả định): Tài liệu
Tuy xấu xí như thế này, nó sẽ hoạt động khi gọi bind_param
theo cách này:
$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]);
}
Tôi ghét điều này nhiều như bạn có thể làm. Tôi khuyên bạn nên chuyển từ mysqli
tới PDO
xử lý các tham số biến theo cách đẹp hơn nhiều (và có cú pháp cao hơn nói chung, theo ý kiến của tôi):
$pdo = new PDO('mysql:host=localhost', 'username', 'password');
$stmt = $pdo->prepare($selectedstudentanswerqry);
$stmt->execute($parameters);
$selectedstudentanswernum = $stmt->rowCount();