2

我已经搜索了很多其他人发布的问题,但我仍然找不到我的代码有什么问题。在那里我找不到太多与我相似的东西,而且我发现大部分是在 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]: Number of variables doesn't match number of parameters in Prepared statement

我真的需要一些大的帮助。我曾经在 mySQL 中做,我不知道或者更确切地说不知道准备语句的做法。现在我正在自学mySQLi,同时学习如何使用preparing statement进行编码。不管我怎么看说明书,我还是不明白。

此外,在 OO 或程序方法中编码是否有任何偏好或优点/缺点?

多谢你们!

4

1 回答 1

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

}
于 2012-12-13T07:28:17.503 回答