Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql查询未获取用户数据_Php_Mysql - Fatal编程技术网

Php mysql查询未获取用户数据

Php mysql查询未获取用户数据,php,mysql,Php,Mysql,我正在使用apigee控制台使用以下URI测试我的web服务。当我选择所有用户时,查询返回数据(): 但是当我选择一个特定的用户时,查询不会返回任何数据(creative.coventry.ac.uk/~4089797/Games/V1.0/index.php/users/username/fkhan is): 我在MySQL数据库中有一个名为user的用户,这是检索名称的PHP: function users_get($users_username) { $this->load

我正在使用apigee控制台使用以下URI测试我的web服务。当我选择所有用户时,查询返回数据():

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

我在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);
}

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

在方法声明中,您有参数
$username\u username
,但在方法实现中,您使用了
$username
,这是您的主要错误:变量
$username
不存在,因此它是
null
;替换

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


也可以考虑使用准备好的语句,而不是手动将变量放在查询字符串中。

< P> <代码>用户名< /代码>变量在函数中没有定义,所以它是空的。 我相信您混淆了它的名称,并打算使用
$users\u username

    $sql = 'SELECT * FROM users WHERE username = "'.$username.'";';
替换为:

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

您的变量称为
$username\u username
,但查询是使用变量
$username
进行的,因此您的最终查询是
从username=“”的用户中选择*并且没有空字符串的用户。:)

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

函数users\u get($users\u username){

其中输入变量为$users\u username

但是在SQL命令中

$sql='从username=“.$username.”“;”中的用户中选择*

您使用$username

按如下所示更改SQL命令,应该可以

$sql='SELECT*FROM username=“”。$users_username.“;”


查找变量范围和函数argumentsive更改了它,但我仍然得到相同的问题函数users_get($users_username){$this->load->database();$sql='SELECT*FROM username=“”。$users_username.”“;”;$query=$this->db->query($sql);$data=$query->row();$this->response($data,200);}感谢您接受回复。通过接受答案,我认为您的问题现在已经解决。您解决了吗?还是您仍然有问题?是的,我现在已经将此问题解决到许多其他问题上:D
$sql = 'SELECT * FROM users WHERE username = "'.$users_username.'";';
    $sql = 'SELECT * FROM users WHERE username = "'.$username.'";';
$sql = 'SELECT * FROM users WHERE username = "'.$users_username.'";';