Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP - Фатална грешка:Извикване на член функция bind_param()

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);
}

След това ни уведомете какво се получава.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL се задавя от къдрави (интелигентни) кавички

  2. Данни от колоната на обобщената таблица на MySQL като редове

  3. Не може да стартира сървъра:Свързване на TCP/IP порт:Не може да се присвои исканият адрес

  4. изграждане на ролеви приложения

  5. Ruby CSV чете многоредови полета