我正在尝试为一个非常基本的搜索功能编写一个准备好的语句。基本上,当标题包含搜索词(但也可能包含比搜索词更多的单词)时,我只需要返回“标题”。
我可以在普通的 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 fatal error :未捕获错误:
那么我怎样才能把它变成一个准备好的声明呢?非常感谢!
最佳答案
您必须使用串联:
$stmt = $conn->prepare("SELECT user, title FROM quiztime WHERE title LIKE concat('%', ?, '%')");
关于php - 如何在此准备好的语句中使用通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57741848/