TL\DR
Kueri Anda gagal prepare()
. Anda perlu mencari tahu di mana, bagaimana, dan mengapa. Lihat blok kode terakhir dari jawaban ini dan beri tahu kami apa kesalahannya.
Saya akan mulai dengan kueri. Anda mencoba mengakses kata cadangan MySQL. Anda perlu membungkusnya dengan backtick seperti ini:
$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(?, ?, ?, ?, ?, ?, ?, ?, ?, ".
"?, ?, ?, ?, ?, ?, ?)";
Sekarang, Anda membuat instance variabel $stmt
dalam if
blok tetapi kemudian mencoba mengikatnya di luar blok itu. Anda harus mengubah ini:
if ($stmt = $mysqli->prepare($add)) {
....
}
$stmt->bind_param(....);
Untuk ini:
if ($stmt = $mysqli->prepare($add)) {
....
$stmt->bind_param(....);
}
Selain itu, pastikan kueri Anda benar-benar disiapkan dengan benar:
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);
}
Lalu beri tahu kami apa yang muncul.