我通过其他人发布的很多问题进行了搜索,但仍然无法找到我的代码有什么问题。没有太多我能找到类似于我的东西,而且我发现大部分都是在OO方法中。
我试过这个:
$query = "SELECT * FROM userinfo WHERE (username = '?')";
if($stmt = mysqli_prepare($mysqli, $query))
{
mysqli_stmt_bind_param($stmt, "s", $login_username);
mysqli_stmt_execute($stmt);
}
和
$query = "SELECT re_password FROM userinfo WHERE (username = '?')";
if($stmt = mysqli_prepare($mysqli, $query))
{
mysqli_stmt_bind_param($stmt, "s", $login_username);
mysqli_stmt_execute($stmt);
}
我仍然收到此消息:mysqli_stmt_bind_param()[function.mysqli-stmt-bind-param]:变量数与预准备语句中的参数数不匹配
我非常需要一些帮助。我曾经在mySQL中做过,我不知道或者更不知道准备语句的做法。现在我自己学习mySQLi,并通过同时使用准备语句学习如何编码。无论我怎么看手册,我仍然不明白。
此外,OO或程序方法中的代码是否有任何偏好或优点/缺点?
谢谢你们!
答案 0 :(得分:3)
尝试更换'?'用?:
$query = "SELECT * FROM userinfo WHERE username = ?";
if($stmt = mysqli_prepare($mysqli, $query))
{
mysqli_stmt_bind_param($stmt, "s", $login_username);
mysqli_stmt_execute($stmt);
}