【发布时间】:2014-05-20 02:25:05
【问题描述】:
在 PHP 中,我有一个函数可以返回搜索表单的结果。
function search($search) {
global $database;
$search2 = ( '%' . $search[0] . $search[1] . $search[2] . $search[3] . '%' );
$q1 = "SELECT * FROM location WHERE is_approved = 1
AND (city LIKE '$search'
OR state LIKE '$search'
OR state LIKE '$search2'
OR 'city' LIKE '$search2')";
$matches = $database ->query($q1);
return $matches;
}
search2 变量用于通配符搜索位置中的四个字符匹配,例如“Cinc”匹配“Cincinnati”。为此,查询需要一个通配符,前后都带有 % 字符。
每当我直接在 MYSQL 中运行查询来测试它时,它都能正常工作。每当我在 PHP 代码中运行它时,通配符部分似乎不起作用。如果我在示例中回显 %search2 ,则 $search2 将回显 %Cinc% ,我认为它应该用于通配符搜索。为什么通配符部分没有返回结果?
【问题讨论】:
-
你能输出完整的查询吗?
-
您在哪里获取查询?比如
query函数中有 fetchAll 吗? -
可能是
query函数正在清理您的查询字符串