PHP mysqli prepare语句bind_param布尔错误

PHP mysqli prepare语句bind_param布尔错误,php,mysqli,Php,Mysqli,从各个方面测试该声明,但未能找到解决方案 // 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 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()函数)
  • 变量数据值=正常(打印所有数据值以供检查)
  • Mysql查询语句=OK(直接在Mysql上测试,输入数据,Mysql正在插入值)
  • 也没有语法错误
  • 变量对齐=正常
  • 数据连接=正常(因为它在同一页上运行其他prepare语句而没有错误)
那错在哪里呢?

我想出来了

解决方案: 由于上一个prepare语句
$stmt\u aff
连接未关闭,因此无法工作。 一旦我关上它。下一个准备语句
$insert\u stmt
开始工作

一个很好的教训是,如果同一页上有多个prepare语句,为什么会产生
bind_param
boolean错误

$stmt_aff->close();

这就是为什么我告诉你检查连接的原因。对不起,我是新手,尽管你在用
include_once'includes/db connect.php'谈论一般的数据连接希望此问题能帮助其他新手。请尝试检查要插入数据库的数据的值。是否可以共享错误消息。如果prepare返回false,则需要检查数据值。某些内容已关闭。首先,在调用
prepare()
后,立即检查数据库连接在
mysqli::$errno
mysqli::$error
中是否已连接?