得到准备好的mysql语句的结果

时间:2014-07-30 18:30:53

标签: php mysql sql mysqli

我在godaddy服务器上运行php 5.4。我正在测试一个非常简单的查询,但无法用任何方法返回结果。

我使用这样的预备语句:

$login = mysqli_prepare($sqlConn,"SELECT 1 FROM users WHERE username = ? AND password = ?");
mysqli_stmt_bind_param($login, "ss", $username, $password);

if(!empty($login)){
     mysqli_stmt_execute($login);

     //I tried this but an error message says mysqli_stmt_get_result is undefined
     //$validated = mysqli_stmt_get_result($login);

     mysqli_stmt_bind_result($login, $validated);
     mysqli_stmt_fetch($login);

     //$validated is always empty
     print_r($validated);

     if(empty($validated)) echo 'no user found';
     else echo 'found user';
}

即使我使用肯定在我的数据库中的用户名并且print_r始终为空,代码也总是打印出“没有找到用户”。如果我直接在我的数据库中运行sql代码,它将返回正确的结果。

为什么我不能使用mysqli_stmt_get_result?为什么绑定/获取代码不起作用?

如果我使用这样的非预备语句:

$validated = mysqli_query($sqlConn, "SELECT 1 FROM users WHERE username = ME");

它没有任何问题,并返回正确的结果。

1 个答案:

答案 0 :(得分:2)

mysqli_stmt_bind_param($login, "ss", $username);

应该是

mysqli_stmt_bind_param($login, "s", $username);