php mysqli准备语句bind_param boolean错误



从全面测试语句,但没有找到解决方案。

// Insert the new user into the database 
 if( $insert_stmt = $mysqli->prepare("INSERT INTO client (username, email, 
 password, reg_ip, salt, country, ref_id, pin, ref_by, ref_by_2) VALUES ( ?, 
  ?, ?, ?, ?, ?, ?, ?, ?, ?)")){
     $insert_stmt->bind_param("ssssssssii", $username, $email, $pass_2, 
     $reg_ip, $random_salt, $countryname, $ref_code, $hashed_pin, $user_id3, 
     $user_id4);
     $insert_stmt->execute();

这永远不会执行或进入if语句。

我通过删除if零件来调试它,这表明bind_param()是布尔值错误。

 $insert_stmt = $mysqli->prepare("INSERT INTO client (username, email, 
 password, reg_ip, salt, country, ref_id, pin, ref_by, ref_by_2) VALUES ( ?, 
  ?, ?, ?, ?, ?, ?, ?, ?, ?)");
 $insert_stmt->bind_param("ssssssssii", $username, $email, $pass_2, $reg_ip, 
 $random_salt, $countryname, $ref_code, $hashed_pin, $user_id3, $user_id4);
 if($insert_stmt->execute()){

致命错误:打电话给布尔值

上的成员函数bind_param()

我已经完成了测试:

  • 所有10个变量数据类型test = ok(使用getType()函数)
  • 变量数据值= ok(打印所有数据值以进行检查)
  • mySQL查询语句= ok(直接在MySQL上直接测试使用输入的数据,MySQL正在插入值)
  • 也没有语法错误。
  • 变量对齐是= ok
  • 数据连接是=确定(因为它运行其他准备语句而没有错误在同一页面上)

那错误在哪里?

我弄清楚了。

解决方案:由于先前的准备语句$stmt_aff连接未关闭,因此无法正常工作。一旦我关闭了它。下一个准备语句$insert_stmt开始工作。

一个很好的教训学会了为什么bind_param布尔值错误如果在同一页面上有多个准备语句。

$stmt_aff->close();

最新更新