我有多个包含客户名称的变量,如下所示:
$customer = $row["customer_name"];
其中包括: test Microsoft test test test
现在,在我的数据库中 customer
列包含 Microsoft Netherlands Office
要查看数据库,我有如下所示,但它没有给我任何结果:
$query="SELECT * FROM specific_req WHERE customer LIKE '%$customer%'";
我要在包含来自的任何单词的数据库表中进行搜索 $customer
.
3条答案
按热度按时间ctehm74n1#
你可以使用全文搜索。
MATCH AGAINST
.要使全文有效,您必须创建
FULLTEXT INDEX
在customer
列。注:消毒
$customer
避免sql注入ttisahbt2#
你可以这样做的一个方法是分开你的
$customer
变量转换为搜索项数组,这允许您在表中分别搜索每个项。这将使
$query
输出我们所做的就是使用php
explode()
函数,在每个空格字符处打断变量(使用trim()
删除开头和结尾空格以避免像'%%'
). 这将为我们提供一个值数组,然后通过foreach()
环路,建筑物$queryString
以匹配所需的sql语法。警告:此解决方案可能易受sql注入攻击,可以通过转义
$c
循环中的变量。gudnpqoy3#
在php中构建可选匹配项的正则表达式并在sql中运行: