gpt4 book ai didi

php - 如何进行良好的 SQL 搜索?

转载 作者:行者123 更新时间:2023-11-29 14:54:53 25 4
gpt4 key购买 nike

我有一个搜索字段,并且使用该单个文本框,我希望用户能够按名称查找画廊和图像。我遇到的问题是,即使语法很好并且没有错误,我似乎无法在查询中获得任何结果。

场景如下:我的群组名称是“Liten gruppe!”,搜索字符串是“liten”。对于不区分大小写的搜索,搜索字符串和结果字符串都切换为小写。

语法中的某些内容一定是在做一些我没有预料到的事情。

SELECT `id`
FROM gallery_groups
WHERE `name` LIKE LOWER('%$searchstring%') OR
`date_created` LIKE LOWER('%$searchstring%');

感谢您的帮助

<小时/>

编辑:好的,这是一个愚蠢的错误。但修正仍然没有结果:

SELECT `id`
FROM gallery_groups
WHERE LOWER(`name`) LIKE '%$searchstring%' OR
LOWER(`date_created`) LIKE '%$searchstring%';
<小时/>

编辑:有趣!将生成的查询直接复制到 PhpMyAdmin 中会产生匹配。然而,当从 PHP 调用时,它不会产生任何行。怎么会这样?

<小时/>

编辑:好的,事实证明该查询确实返回了 1 个结果。我被结果的转储输出愚弄了:

object(mysqli_result)[3]
public 'current_field' => null
public 'field_count' => null
public 'lengths' => null
public 'num_rows' => null
public 'type' => null

如果结果中的所有字段都为空,我怎么可能知道除了运行 fetch_object() 之外是否还有其他结果?

最佳答案

您可以在 MYSQL 中发出不区分大小写的搜索,而无需 LOWER:

WHERE   `name` COLLATE UTF8_GENERAL_CI LIKE '%$searchstring%' OR
`date_created` COLLATE UTF8_GENERAL_CI LIKE '%$searchstring%';

AS 用于调试:尝试在 SQL 查询传递到数据库时打印它们,以查看是否确实使用了预期的搜索字符串。

关于php - 如何进行良好的 SQL 搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4904758/

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