如何使用PDO中的绑定参数进行模糊搜索?

时间:2020-03-05 18:52:48  来源:igfitidea点击:

试图做这种事情...

WHERE username LIKE '%$str%'

...但是在PDO中使用绑定参数来准备语句。例如。:

$query = $db->prepare("select * from comments where comment like :search");
$query->bindParam(':search', $str);
$query->execute();

我已经尝试过许多单引号和%符号的排列方式,但是这与我很对。

我似乎记得以前曾为此进行过角力,但找不到任何参考。有谁知道(如果?)我们可以在带有命名参数的PDO中很好地做到这一点?

解决方案

回答

啊。在php.net上找到一条使我想起答案的评论;我们需要在对bindParam求值之前对值进行通配,而不必担心引用它。因此,例如,这很好用:

$str = "%$str%";
$query = $db->prepare("select * from comments where comment like :search");
$query->bindParam(':search', $str);
$query->execute();