我在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");
它没有问题,并返回正确的结果。
最佳答案
mysqli_stmt_bind_param($login, "ss", $username);
应该
mysqli_stmt_bind_param($login, "s", $username);
关于php - 获取准备好的mysql语句的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25044310/