php - 获取准备好的mysql语句的结果

标签 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");


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

最佳答案

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


应该

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

关于php - 获取准备好的mysql语句的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25044310/

相关文章:

mysql - 使用时间戳索引优化查询

mysql - 基于动态日期的不同用户计数

php - fwrite 从头开始​​写而不删除

php - 有没有办法可以将 "httpOnly"参数传递给 PHP 的 setcookie 函数,而不传递所有 "extra"参数?

php - 使用灵活的 where 子句将 LEFT JOIN 结果限制为 1

php - 在 PHP 中加入分解

php - 图片上传表单无法在网络上使用

Mysql - 帮助优化查询

php - 这里出了什么问题-MySQLi 和自定义类

sql - 将 Null 从 Excel 传递到 SQL