Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP - Erro fatal:Chamada para uma função de membro bind_param()

TL\DR


Sua consulta está falhando em prepare() . Você precisa descobrir onde, como e por quê. Olhe para o último bloco de código desta resposta e deixe-nos saber qual é o erro.

Vou começar com a consulta. Você está tentando acessar uma palavra reservada do MySQL. Você precisa envolvê-los em backticks assim:
$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(?, ?, ?, ?, ?, ?, ?, ?, ?, ".
    "?, ?, ?, ?, ?, ?, ?)";



Agora, você está instanciando a variável $stmt dentro do if bloco, mas tentando vinculá-lo fora desse bloco. Você precisará alterar isso:
if ($stmt = $mysqli->prepare($add)) {
....
}
$stmt->bind_param(....);

Para isso:
if ($stmt = $mysqli->prepare($add)) {
....
$stmt->bind_param(....);
}

Além disso, verifique se sua consulta está realmente sendo preparada corretamente:
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);
}

Depois nos conte o que vai rolar.