TL \ DR
Truy vấn của bạn không thành công prepare()
. Bạn cần phải tìm ra ở đâu, như thế nào và tại sao. Hãy xem khối mã cuối cùng của câu trả lời này và cho chúng tôi biết lỗi là gì.
Tôi sẽ bắt đầu với truy vấn. Bạn đang cố gắng truy cập một từ dành riêng cho MySQL. Bạn cần bọc những thứ đó trong các que tính ngược như thế này:
$add = "INSERT INTO books (title, edited, created, ip,".
" email_to, twitter, last_taken, questions_total, responses, ".
"show_progress, need_correct, go_back, state, send_stats, ".
"show_number, imported) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ".
"?, ?, ?, ?, ?, ?, ?)";
Bây giờ, bạn đang khởi tạo biến $stmt
trong if
chặn nhưng sau đó cố gắng liên kết nó bên ngoài khối đó. Bạn sẽ cần thay đổi điều này:
if ($stmt = $mysqli->prepare($add)) {
....
}
$stmt->bind_param(....);
Về điều này:
if ($stmt = $mysqli->prepare($add)) {
....
$stmt->bind_param(....);
}
Ngoài ra, hãy đảm bảo rằng truy vấn của bạn đang thực sự chuẩn bị chính xác:
if ($stmt = $mysqli->prepare($add)) {
$stmt->bind_param("siisssiiiiiiiiii", $title, $edited, $created, $ip, $email_to, $twitter, $last_taken, $questions_total, $responses, $show_progress, $need_correct, $go_back, $state, $send_stats, $show_number, $importedVal);
// execute it and all...
} else {
die("Errormessage: ". $mysqli->error);
}
Sau đó, hãy cho chúng tôi biết kết quả.