具有区分大小写功能“ LOWER”的绑定的mysql语句-语法问题

时间:2018-12-27 18:11:28

标签: php mysql

我尝试通过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]. "%)";

它们都不起作用。有人可以给我解释一下我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

如果小写PHP变量,则只需添加% ...

$searchparameter = '%' .strtolower($parts[$i]). '%';

绑定值时,假定它是一个值,并且您也尝试绑定函数调用。

或者,如果您想坚持使用MySQL lower(),我想您可以将其添加到MySQL和

LOWER(jobmaincategory) LIKE LOWER(?)

然后使用

$searchparameter = '%' .$parts[$i]. '%';