Mysqli中的警告消息:mysqli_stmt_bind_param()期望参数1为mysqli_stmt,布尔给定?
问题描述:
我正在使用此代码,我尝试运行它,但它显示此错误并尝试修复它,但我不知道如何?谁能帮我? :Mysqli中的警告消息:mysqli_stmt_bind_param()期望参数1为mysqli_stmt,布尔给定?
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 Docs:
mysqli_prepare()返回一个语句对象或FALSE如果发生错误。
由于您的警告声明给出了布尔值,所以很可能是发生了错误。因为@Dagon建议检查$statement
是否设置为false
,所以我建议您做var_dump($statement)
。您可能还想检查$con
。我假设你省略了那部分,并且你在代码中早些时候正确地初始化了它,但是确保你正在检查mysqli_connect_error()
。
'var_dump($ statement);'它可能会说错误 – 2015-10-14 02:10:25
@Dagon的意思是?代码不正确? – rafein
是否为假?是这样mysqli_prepare()有错误 – 2015-10-14 02:13:58