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. mysql क्वेरी का उपयोग करके सभी नाम खोजें जो 'a' अक्षर से शुरू होता है

  4. MySQL में मार्जिन की गणना कैसे करें

  5. MySQL चार बनाम int