gpt4 book ai didi

php - 清理mysql搜索字符串的功能(主要是删除通配符)?

转载 作者:行者123 更新时间:2023-11-29 04:28:14 26 4
gpt4 key购买 nike

是否有内置的 php(或 MySQL)函数可以清理要在搜索中使用的字符串?在这种情况下,我只想制作一个字符串字母表(大写字母和小写字母),然后再将其传递到 MySQL 正则表达式中。

我正在使用 PDO 和参数化查询,所以我不担心 SQL 注入(inject)。但是,我想确保有人不会传递通配符并占用太多内存。到目前为止,这就是我用来删除除空格和字母以外的所有内容的方法。够了吗?

preg_replace("/[^A-Za-z\s\s+]/", "", $query);

最佳答案

为什么不直接删除 %??这些是从内存角度来看很重要的通配符。从长远来看,这将为您提供最大的可扩展性,而不会为后来的开发人员带来 WTF??! 的另一种可能性?

就此而言,您可以通过避免 LIKE 来完全回避这个问题,但这可能是不可能的。

如果您必须比这更有选择性,那么我会排除所有[^\w\s]+。您不想排除数字,允许 -_ 也没什么坏处。

关于php - 清理mysql搜索字符串的功能(主要是删除通配符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7080900/

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