我正在尝试catch the error that an unsuccessful bind statement result in
,这就是我故意不将类型传递给mysqli_stmt_bind_param()函数的原因。请参阅下面的代码段
$email = 'test@test.com';
$password = 'password';
if (!(mysqli_stmt_bind_param($stmt , '' , $email, $password))) {
echo "Binding parameters failed: (" . mysqli_stmt_errno($stmt) . ") " . mysqli_stmt_error($stmt) . "<br>";
}
但是,mysqli_stmt_errno
返回0而mysqli_stmt_error()
返回一个空字符串。
PHP发出警告说Warning: mysqli_stmt_bind_param(): Invalid type or no types specified in C:\wamp\www\test\database1.php on line 28
为什么我没有收到数据库的反馈?
答案 0 :(得分:1)
因为绑定与数据库无关。
答案 1 :(得分:0)
绑定参数与execute语句一起发送,而不是之前发送。绑定和执行发生在单个SQL语句中,即使它有2个PHP函数。只有在execute语句运行之后,数据库才能提供有关不成功绑定的反馈。希望这可以帮助任何可能想知道相同的人。