【发布时间】:2020-01-04 14:23:53
【问题描述】:
我正在尝试为一个非常基本的搜索功能编写一个准备好的语句。基本上,我只需要在标题包含搜索词时返回“标题”(但也可能包含比搜索词更多的词)。
我可以在普通的 mysqli 中执行此操作,但不能使用准备好的语句(为了安全,我需要它,对吗?)
这可行,但没有准备好的声明:
$sql = "SELECT title, description FROM quiztime WHERE title LIKE '%".$query."%' OR description LIKE '%".$query."%'";
这不起作用:
$stmt = $conn->prepare("SELECT user, title FROM quiztime WHERE title LIKE %?%");
我进入日志: PHP 致命错误:未捕获的错误:
那么我怎样才能把它变成一个准备好的语句呢?非常感谢!
【问题讨论】:
-
在执行时将 %% 添加到变量中,然后再将其传入。即
execute(["%$variable%"]) -
您使用的是 MySQLi 还是 PDO 扩展?
-
@Dharman mySQLi
标签: php mysql prepared-statement wildcard