【解決方法】このエラーを解決する方法を教えてください

[ad_1]

PHP
  1  <?php
  2  session_start();
  3  include_once("../includes/empty_file.php");
  4  $username = sanitize($_POST["username"]);
  5  $password = encrypt(sanitize($_POST["password"]));
  6  $fullname = sanitize($_POST["fullname"]);
  7  $mobile_no = sanitize($_POST["mobile_no"]);
  8  $user_stat = "verified";
  9  $user_type = "csr";
 10  $kiosk_operator = "1";
 11  $site = "si";
 12  if(isset($_SESSION["ref_id"])){
 13      $ref_id = sanitize($_SESSION["ref_id"]);
 14      $number1 = rand(100,100000);
 15      $t=time();
 16      $myrefid = $number1.$t;
 17      $mobile_no = "CP No.: ".$mobile_no;
 18      $query = $conn->prepare("INSERT INTO tbl_user (user_name, user_password, user_fullname, user_stat, user_type, user_timestamp,  mobile_no,angent_id, kiosk_operator, site) VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP,?,?,?,?);");
 19      $query->bind_param("sssssssss", $username, $password, $fullname, $user_stat, $user_type,$mobile_no,$myrefid,$kiosk_operator,$site);
 20      $query_verify = $conn->prepare("SELECT * from tbl_user where user_name=?");
 21      $query_verify->bind_param("s", $username);
 22      $query_verify->execute();
 23      $result=$query_verify->get_result();
 24      if ($result->num_rows == 0) {
 25      $query_verify_email = $conn->prepare("SELECT * from tbl_user where user_email=?");
 26      $query_verify_email->bind_param("s", $email_add);
 27      $query_verify_email->execute();
 28      $result_email=$query_verify_email->get_result();
 29      $result_query = $query->execute();
 30      echo $result_query;
 31      $query_verify_email->close();
 32  }else{
 33      echo "ERROR!!! USERNAME ALREADY TAKEN";
 34  }
 35  $query_verify->close();
 36  $query->close();
 37  }else{
 38      $number1 = rand(100,100000);
 39      $t=time();
 40      $myrefid = $number1.$t;
 41      $mobile_no = "CP No.: ".$mobile_no;
 42      $query = $conn->prepare("INSERT INTO tbl_user (user_name, user_password, user_fullname, user_email, user_fb, user_timestamp,mobile_no,my_agent_id,angent_id,for_agent) VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP,?,?,?,?,?);");
 43      $query->bind_param("sssssssss", $username, $password, $fullname, $email_add, $facebook,$mobile_no,$ref_id,$myrefid,$for_agent);
 44      $query_verify = $conn->prepare("SELECT * from tbl_user where user_name=?");
 45      $query_verify->bind_param("s", $username);
 46      $query_verify->execute();
 47      $result=$query_verify->get_result();
 48      if ($result->num_rows == 0) {
 49      $query_verify_email = $conn->prepare("SELECT * from tbl_user where user_email=?");
 50      $query_verify_email->bind_param("s", $email_add);
 51      $query_verify_email->execute();
 52      $result_email=$query_verify_email->get_result();
 53      $result_query = $query->execute();
 54      echo $result_query;
 55      $query_verify_email->close();
 56  }else{
 57      echo "ERROR!!! USERNAME ALREADY TAKEN";
 58  }
 59  $query_verify->close();
 60  $query->close();
 61  }
 62  
 63  
 64  
 65  
 66  
 67  ?>

私が試したこと:

このエラーについて助けてください。

Fatal error: Call to a member function bind_param() on boolean in C:\xampp\htdocs\public_html\user\register.php on line 43

解決策 1

いつ conn->prepare 失敗すると戻ってくる false – そして、それが成功したかのように使用しようとすると、ブール値には というメンバー関数がないため、システムがエラーを出します。 bind_param

最も簡単な解決策は、 prepare 呼び出しが戻り、それが false の場合は、DB とクエリを調べて理由を調べます。

私の数えでは、10 列に 11 個の値を提供しようとしています。

INSERT INTO tbl_user (user_name, user_password, user_fullname, user_email, user_fb, user_timestamp,mobile_no,my_agent_id,angent_id,for_agent)  -- !0 columns listed.
VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP,?,?,?,?,?); -- 11 parameters required.

[ad_2]

コメント

タイトルとURLをコピーしました