sql >> Database >  >> RDS >> Mysql

PHP - Fatale fout:aanroep van een lidfunctie bind_param()

TL\DR

Uw zoekopdracht kan niet prepare() . Je moet uitzoeken waar, hoe en waarom. Bekijk het laatste codeblok van dit antwoord en laat ons weten wat de fout is.

Ik zal beginnen met de vraag. U probeert toegang te krijgen tot een door MySQL gereserveerd woord. Je moet die als volgt in backticks verpakken:

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

Nu instantieert u de variabele $stmt binnen de if blok, maar probeer het vervolgens buiten dat blok te binden. U moet dit wijzigen:

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

Hierop:

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

Zorg er ook voor dat uw vraag daadwerkelijk correct wordt voorbereid:

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

Laat ons dan weten wat er opduikt.



  1. Is het sluiten van de mysql-verbinding belangrijk?

  2. UNION ALL-optimalisatie

  3. Hoe numerieke typen uit MySQL te halen met PDO?

  4. Nuttige vragen over het verlopen van het Oracle EBS-wachtwoord/beleid/instellingen