如何使用PHP在SQL中正确搜索数据库中的记录?

How to properly search a record in the database in SQL optionally with PHP?

提问人:MADZ 提问时间:11/9/2023 最后编辑:MADZ 更新时间:11/9/2023 访问量:63

问:

我现在的情况是这样的:

我有一个$_GET['search'],但是如果我在SQL中使用LIKE运算符,这只会返回完全匹配

PHP格式:$search = $_GET['search'] ?? '';

SQL格式:SELECT * FROM movies WHERE title LIKE '%$search%';

我遇到的问题是,当我搜索像《弗雷迪大战杰森》这样的电影时,如果我不包括“.”角色,它就不会给我结果。解决此问题的替代方案是什么,它需要具有通用性,因此不仅针对这个确切的标题。

我正在使用MySQL

PHP SQL 数据库 搜索

评论

0赞 Adi 11/9/2023
有帮助吗?
2赞 aynber 11/9/2023
你没有提到你正在使用什么类型的 sql,但查看全文搜索
0赞 user3783243 11/9/2023
变量永远不应该出现在 SQL 中。使用参数化查询。
0赞 MADZ 11/9/2023
每个人都明白,这只是为了简化问题......我不会在这里写完整的参数化查询,因为它使问题变得臃肿。此外,问题主要是针对 SQL,而不是如何使用 PHP 编写安全的 SQL 查询。
1赞 GrumpyCrouton 11/9/2023
@MADZ 参数化查询会比您发布的要短,因为它只有值的占位符,而不是 PHP 变量、符号和单引号。无论如何,您正在寻找的答案可能是全文搜索。%

答: 暂无答案