[英]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.