如何使用 PDO 进行 LIKE 搜索?
Posted
技术标签:
【中文标题】如何使用 PDO 进行 LIKE 搜索?【英文标题】:How to do LIKE search with PDO? 【发布时间】:2010-10-25 13:50:25 【问题描述】:为了使用 PDO 进行 LIKE 搜索,我需要在传递参数之前将 %
添加到参数中。
这行得通:
$qry = '
SELECT product_id
FROM cart_product
WHERE product_manufacturer_num LIKE :search_string
';
$sth = $this->pdo->prepare($qry);
$sth->execute( array("search_string"=>'%'.$search_string.'%') );
对我来说,这更像是一种 hack,有没有更官方的方式来做到这一点?
【问题讨论】:
重复:***.com/questions/583336/… 【参考方案1】:没关系。对我来说,这不像是黑客攻击。
difficulty 出现在您希望在搜索字符串中允许文字 %
或 _
字符,而不将其用作通配符时。
【讨论】:
我认为绑定参数的很大一部分是为了让 PDO / SQL 为你转义 % 或 _ 之类的东西......所以我很困惑。 @RonLugge:PDO 进行必要的转义/参数化以将字符串文字输入数据库。问题是LIKE
模式语法是一个单独的层,位于 SQL 字符串文字之上。 mysql 通过对两个层使用相同的转义字符来混淆这个问题,但它们在概念上是不相关的,在完全不同的级别上实现。以上是关于如何使用 PDO 进行 LIKE 搜索?的主要内容,如果未能解决你的问题,请参考以下文章
在 bindParam 中使用 LIKE 进行 MySQL PDO 查询