gpt4 book ai didi

php查询连续搜索一个字符串

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

如何在php中连续搜索一个字符串?我写了这段代码:

$filterQuery .=' LIKE %' . $db->Quote(JString::strtolower($filter) . '%');

它在 mysql 中可以搜索字符串:LIKE '%stringtosearch%'

为什么它在 php 中不起作用?

最佳答案

如前所述,您忘记了 %...% 部分的引号。但是,默认情况下 MySQL 不区分大小写,因此您可以删除 JString 调用,除非您已将 MySQL 服务器专门配置为区分大小写。替代用法可以简化为:

$filterQuery .=' LIKE ' . $db->quote('%' . $filter . '%');

但是请注意,如果您正在使用用户输入,SQL 通配符可能会导致 DOS 攻击(用户可能会在过滤器字符串中包含额外的 % 和 _ 字符)。为防止这种情况,您可以使用如下格式:

$filterQuery .=' LIKE ' . $db->quote('%' . $db->escape($filter, true) . '%');

这将逃脱过滤器本身(并允许您搜索真正的下划线或 % 字符)。这就是核心代码处理这种情况的方式,如下所示:

https://github.com/joomla/joomla-cms/blob/staging/administrator/components/com_content/models/articles.php#L285

关于php查询连续搜索一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267795/

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