繁体   English   中英

mysql查询未获取用户数据

[英]mysql query not getting the user data

我正在使用 apigee 控制台使用以下 URI 测试我的 Web 服务。 当我选择所有用户时,查询返回数据( 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 是):

{"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.'";';

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

函数中未定义username变量,因此它为空。 我相信您已经对其名称感到困惑,并打算使用$users_username

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

替换为:

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

你的变量被称为$users_username但查询是变量$username所以你的最终查询是SELECT * FROM users WHERE username = ""; 并且没有空字符串的用户。 :)

看起来您在 SQL 命令中使用了错误的变量。 该函数定义为

函数 users_get($users_username) {

其中输入变量是 $users_username

但在你的 SQL 命令中

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

你使用 $username

将您的 SQL 命令更改如下,应该没问题

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM