gpt4 book ai didi

php - 关于PHP函数返回的问题

转载 作者:行者123 更新时间:2023-11-29 02:05:43 24 4
gpt4 key购买 nike

以下 codeigniter 函数采用(字符串)参数并返回行的(整数)ID。如果我传递字符串值,它工作正常,但如果传递整数 0,它返回数据库中第一行的 ID。原则上,只有当数据库中存在user_name 时,它才应该返回user_id。由于没有名为 0 的 user_name,因此它应该返回 false。有人能说出它为什么会这样以及如何修复吗?

谢谢。

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.

最佳答案

您应该添加一个类型为 if ($user_name == "") return false; 的测试来捕捉这一点。

显然 where 与第二个参数 0 总是匹配,例如翻译成 SQL WHERE user_name,而不是 WHERE user_name = ""WHERE user_nameWHERE user_name != 的简写"" -- 与你想要的相反:-)

在开始时运行此测试可以在您传递一个必然导致 false 的参数时为您节省一个完整的数据库查询。

关于php - 关于PHP函数返回的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com