gpt4 book ai didi

php - MySQL Codeigniter - $this->db->query 和 CLI 结果不匹配

转载 作者:行者123 更新时间:2023-11-29 04:56:27 24 4
gpt4 key购买 nike

我正在使用这个查询返回搜索结果

    $id = $this->auth->get_user_id();

$query = $this->db->query("
SELECT user_id,
facebook_id,
first_name,
last_name,
country,
state,
city,
picture,
cars_id,
cars_name,
cars_picture
FROM user_profiles
JOIN users
ON users.id = user_id
JOIN cars
ON cars.id_fk = user_id
WHERE user_id NOT LIKE '$id'
AND activated = 1
AND banned = 0
AND first_name LIKE '%$search_term%'
OR last_name LIKE '%$search_term%'
OR Concat(first_name, ' ', last_name) LIKE
'%$search_term%'
ORDER BY last_name ASC;
");

如果我点击一个空的搜索框,它会返回所有用户,如果我输入名字或姓氏,它只会返回该特定用户作为搜索结果。使用命令行,此查询在手动输入(或留空)$id$first_name 等时给出类似的结果。

但是,这是奇怪的行为:以下几行似乎对查询没有影响:

user_id NOT LIKE '$id' //line 1
AND activated = 1
AND banned = 0

例如,我无法从搜索结果中排除当前用户(第 1 行)。无论我为 activatedbanned 输入什么,点击空白搜索总是返回所有用户

问题在于,如果我在命令行上运行此 SQL 并手动输入

user_id NOT LIKE '5'
AND activated = 1
AND banned = 0

它正确地过滤了结果。

有谁知道我做错了什么?感谢您的帮助!

最佳答案

我认为 OR 与最后一个 AND 没有关系。试试这个:

AND (first_name LIKE '%$search_term%'
OR last_name LIKE '%$search_term%'
OR Concat(first_name, ' ', last_name) LIKE
'%$search_term%' )

关于php - MySQL Codeigniter - $this->db->query 和 CLI 结果不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6161877/

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