我尝试通过mysql数据库中的表建立搜索。由于区分大小写,我想使用mysql函数“ LOWER”将搜索字符串与表中的值进行比较。
这是我的代码:
$searchparameter = '%' .$parts[$i]. '%';
$stmt = $conn->prepare("SELECT jobunique, joblat, joblng FROM job
WHERE jobdeleted = ?
AND (LOWER(jobtitle) LIKE ?
OR LOWER(jobmaincategory) LIKE ?
OR LOWER(jobsubcategory) LIKE ?
OR LOWER(jobdescription) LIKE ?)");
$stmt->bind_param('issss', $del, $searchparameter, $searchparameter, $searchparameter, $searchparameter);
我尝试使用此选项:
1. $searchparameter = 'LOWER(\'%' .$parts[$i]. '%\')';
2. $searchparameter = 'LOWER(%' .$parts[$i]. '%)';
3. $searchparameter = "LOWER(%" .$parts[$i]. "%)";
它们都不起作用。有人可以给我解释一下我在做什么错吗?
答案 0 :(得分:1)
如果小写PHP变量,则只需添加%
...
$searchparameter = '%' .strtolower($parts[$i]). '%';
绑定值时,假定它是一个值,并且您也尝试绑定函数调用。
或者,如果您想坚持使用MySQL lower()
,我想您可以将其添加到MySQL和
LOWER(jobmaincategory) LIKE LOWER(?)
然后使用
$searchparameter = '%' .$parts[$i]. '%';