mySQLi准备好的声明

时间:2012-12-13 07:23:18

标签: php mysqli

我通过其他人发布的很多问题进行了搜索,但仍然无法找到我的代码有什么问题。没有太多我能找到类似于我的东西,而且我发现大部分都是在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或程序方法中的代码是否有任何偏好或优点/缺点?

谢谢你们!

1 个答案:

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

}
相关问题