Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP — błąd krytyczny:wywołanie funkcji członkowskiej bind_param()

TL\DR

Twoje zapytanie nie może prepare() . Musisz dowiedzieć się, gdzie, jak i dlaczego. Spójrz na ostatni blok kodu tej odpowiedzi i daj nam znać, jaki jest błąd.

Zacznę od zapytania. Próbujesz uzyskać dostęp do słowa zastrzeżonego MySQL . Musisz owinąć je w backticki w ten sposób:

$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(?, ?, ?, ?, ?, ?, ?, ?, ?, ".
    "?, ?, ?, ?, ?, ?, ?)";

Teraz tworzysz instancję zmiennej $stmt w if blok, ale potem próbuje związać go poza tym blokiem. Musisz to zmienić:

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

Do tego:

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

Upewnij się również, że zapytanie jest właściwie przygotowywane:

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

Następnie daj nam znać, co się dzieje.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Który wiersz (w kolejności według jakiejś kolumny) w tabeli odpowiada wierszowi w innej tabeli?

  2. MySQL - Perl:Jak uzyskać tablicę kodów pocztowych w ramach przesłanego x mil przesłanego kodu pocztowego w przykładzie Perla?

  3. c++ mysql połączenie bad_alloc przy użyciu konektora c++

  4. Jak wyświetlić błąd zapytania w PDO PHP

  5. Baza danych do wyszukiwania pełnotekstowego i ponad 200 mln rekordów