php - mysql查询没有获取用户数据

标签 php mysql

我正在使用 apigee 控制台使用以下 URI 测试我的网络服务。当我选择所有用户时,查询返回数据 ( http://creative.coventry.ac.uk/~4089797/Games/V1.0/index.php/users/all ):

[
{"id":"1","username":"fkhan","password":"XXXXXXXX","email":"fkhan@fkhan.com","Gender":null,"country":null,"activated":"0"},

{"id":"2","username":"bkhan","password":"XXXXXXXX","email":"bkhan@fkhan.com","Gender":null,"country":null,"activated":"0"},

{"id":"3","username":"ckhan","password":"XXXXXXXX","email":"ckhan@fkhan.com","Gender":null,"country":null,"activated":"0"}
]

但是当我选择一个特定的用户时,查询没有返回任何数据(creative.coventry.ac.uk/~4089797/Games/V1.0/index.php/users/username/fkhan is):

{"status":false,"error":"Unknown method."}

我在 MySQL 数据库中有一个名为 user 的用户,这是检索名称的 PHP:

 function users_get($users_username) {
    $this->load->database();
    $sql = 'SELECT * FROM users WHERE username = "'.$username.'";';
    $query = $this->db->query($sql);
    $data = $query->row();
    $this->response($data, 200);
}

这是查询函数:

function all_get() {
    $this->load->database();
    $sql = 'SELECT * FROM users;';
    $query = $this->db->query($sql);
    $data = $query->result();   
    $this->response($data, 200);
}

为什么我得到的是所有用户的结果,而不是某个特定用户的结果?

最佳答案

在方法声明中你有参数$users_username 但在方法实现中你使用了$username,这是你的主要错误:变量$username 不存在所以它是null;替换

$sql = 'SELECT * FROM users WHERE username = "'.$username.'";';

$sql = 'SELECT * FROM users WHERE username = "'.$users_username.'";';

另外,考虑使用准备好的语句而不是手动将变量放入查询字符串中。

关于php - mysql查询没有获取用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21077481/

相关文章:

php - 如何创建多个子菜单及其数据库结构?

php - 存储敏感数据的最佳方式

javascript - 根据出生日期计算年龄(jQuery 或 PHP)[不基于用户输入]

php - 仅保留 Array PHP 中存在的值

php - 检查用户输入是否在时间之间

mysql - Sphinx 索引器减慢数据库速度 : How to give it low priority?

php - MySQL左连接显示一个表的值但存储在第二个表中

mysql - 备份clearDB数据库到本地

php - Laravel 4 在 PHP 内置 Web 服务器(CGI)上而不是 Apache

mysql 字段 'col1' 没有默认值