未替换准备好的 SQL 语句中的问号

我在 MariaDB 上使用 PHP 中的 PDO 来过滤文本字段包含的行$search_terms。但是,我只检索包含问号的行。看来$search_terms准备好的语句中的内容没有被替换。


$query = $db->prepare('SELECT * FROM notes WHERE text LIKE \'%?%\'');

$query->execute(array($search_terms));

$data['notes'] = $query->fetchAll(PDO::FETCH_ASSOC);

为什么 ?


摇曳的蔷薇
浏览 100回答 1
1回答

慕尼黑的夜晚无繁华

不确定是否$search_terms要保留一个或多个搜索词。您的查询意味着前者,如果是这样,则使用:$search_term = "%apple%";$query = $db->prepare('SELECT * FROM notes WHERE text LIKE ?');$query->execute($search_term);$data['notes'] = $query->fetchAll(PDO::FETCH_ASSOC);请注意,我们将带有通配符的搜索词绑定%到语句中。该语句仅包含一个?占位符。
打开App,查看更多内容
随时随地看视频慕课网APP