我正在尝试为一个非常基本的搜索函数编写一个准备好的语句。基本上,我只需要在标题包含搜索词时返回"标题"(但也可能包含比搜索词更多的单词(。
我可以在普通的 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 致命错误: 未捕获错误:
那么,我怎样才能把它变成一个准备好的声明呢?非常感谢!
您必须使用串联:
$stmt = $conn->prepare("SELECT user, title FROM quiztime WHERE title LIKE concat('%', ?, '%')");