我在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");
它没有任何问题,并返回正确的结果。
答案 0 :(得分:2)
mysqli_stmt_bind_param($login, "ss", $username);
应该是
mysqli_stmt_bind_param($login, "s", $username);