Mysqli中的警告消息:mysqli_stmt_bind_param()期望参数1为mysqli_stmt,布尔给定


Warning message in Mysqli: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given?

我正在使用这个代码,我试着运行它,但它显示了这个错误,并试图修复它,但我不知道如何?有人能帮我吗?:

Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in /home/u330779411/public_html/Register.php on line 10
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in /home/u330779411/public_html/Register.php on line 11
Warning: mysqli_stmt_close() expects parameter 1 to be mysqli_stmt, boolean given in /home/u330779411/public_html/Register.php on line 13
下面是我的代码:
$name = $_POST['name'];
$matric_number = $_POST['matric_number'];
$username = $_POST['username'];
$password = $_POST['password'];
$statement = mysqli_prepare($con, "INSERT INTO Users (name, matric_number, username, password) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "siss", $name, $matric_number, $username, $password);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement);
mysqli_close($con);
它是

根据PHP文档:

mysqli_prepare()返回语句对象,如果发生错误则返回FALSE

由于您的警告声明给出了一个布尔值,因此很可能发生了错误。我建议按照@Dagon的建议做var_dump($statement),检查$statement是否设置为false

您可能还需要检查$con。我假设您省略了该部分,并且在代码的早期正确地初始化了它,但请确保您也检查了mysqli_connect_error()