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

时间:2015-10-14 01:55:29

标签: php mysqli

我正在使用此代码,我尝试运行它,但它显示此错误并尝试修复它,但我不知道如何?谁能帮我? :

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);

是吗

1 个答案:

答案 0 :(得分:0)

根据PHP Docs

  

mysqli_prepare()会在发生错误时返回语句对象或 FALSE

由于您的警告声明已给出布尔值,因此很可能发生错误。我建议{@ 1}}在@Dagon建议时检查var_dump($statement)是否设置为$statement

您可能还想查看false。我假设您省略了该部分,并且您在代码的前面已正确初始化它,但请确保您也在检查mysqli_connect_error()