以下codeigniter函數使用(string)參數並返回該行的(整數)ID。它工作正常,如果我傳遞字符串值,但如果傳遞整數0,它會返回數據庫中第一行的ID。原則上,只有在數據庫中存在user_name
時,纔會返回user_id
。由於沒有user_name稱爲0,它應該返回false。 有人可以告訴爲什麼它的行爲如何以及如何修復?關於PHP函數返回的問題
謝謝。
public function get_user_id($user_name)
{
$this -> db -> select('user_id');
$this -> db -> from('users');
$this -> db -> where('user_name', $user_name);
$this -> db -> limit(1);
$query = $this->db->get();
if ($query->num_rows > 0)
{
$row = $query->row();
return $row->user_id;
}
return false;
}
例如:
$user_name = "test"; //works fine, returns id.
$user_name = "0"; //works fine, doesnt return anything
$user_name = 0; //Problem. returns ID of first row.
問題出在生成的sql語句上,你需要將它作爲字符串傳遞給WHERE() – Gerep