如何在SELECT FROM PDO Prepared Statement中为搜索框设置多个搜索条件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SELECT FROM PDO Prepared Statement中为搜索框设置多个搜索条件?相关的知识,希望对你有一定的参考价值。
我有一个prepare语句,它根据我的数据库找到搜索条件,其中包含一个Articles表和Text和Title列。
$stmt = $pdo->prepare('SELECT * FROM articles WHERE text OR title LIKE :search');
我的问题是该语句只按标题搜索并完全忽略文本。
我这样尝试它并且它有效,但我也需要标题
$stmt = $pdo->prepare('SELECT * FROM articles WHERE text LIKE :search');
答案
您可以根据需要多次使用相同的占位符*。您只需使用正确的SQL语法。见下文:
$stmt = $pdo->prepare('SELECT * FROM articles WHERE text LIKE :search OR title LIKE :search');
// ^^^^^^^^^^^^
然后只需绑定一次:
$stmt->bindValue(':search', $searchTerm); // replace $searchTerm with your variable name
该值将填补这两个地方。
我假设您已经将%
添加到您绑定的变量中。
*来自PDO::prepare:
除非启用了仿真模式,否则不能在预准备语句中多次使用同名的命名参数标记。
所以,只要仿真模式开启,你就可以开始了。否则,您必须单独命名并绑定它们:
$stmt = $pdo->prepare('SELECT * FROM articles WHERE text LIKE :search1 OR title LIKE :search2');
$stmt->bindValue(':search1', $searchTerm);
$stmt->bindValue(':search2', $searchTerm);
以上是关于如何在SELECT FROM PDO Prepared Statement中为搜索框设置多个搜索条件?的主要内容,如果未能解决你的问题,请参考以下文章