TL\DR
Заявката ви не успява да prepare()
. Трябва да разберете къде, как и защо. Вижте последния кодов блок на този отговор и ни уведомете каква е грешката.
Ще започна със заявката. Опитвате се да получите достъп до MySQL запазена дума. Трябва да ги увиете в обратни точки, както следва:
$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(?, ?, ?, ?, ?, ?, ?, ?, ?, ".
"?, ?, ?, ?, ?, ?, ?)";
Сега инстанцирате променливата $stmt
в рамките на if
блок, но след това се опитва да го обвърже извън този блок. Ще трябва да промените това:
if ($stmt = $mysqli->prepare($add)) {
....
}
$stmt->bind_param(....);
Към това:
if ($stmt = $mysqli->prepare($add)) {
....
$stmt->bind_param(....);
}
Освен това се уверете, че вашата заявка действително се подготвя правилно:
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);
}
След това ни уведомете какво се получава.