猿问

如何使用LIKE语句创建PDO参数化查询?

如何使用LIKE语句创建PDO参数化查询?

我的尝试是:


$query = $database->prepare('SELECT * FROM table WHERE column LIKE "?%"');


$query->execute(array('value'));


while ($results = $query->fetch()) 

{

    echo $results['column'];

}


POPMUISE
浏览 618回答 3
3回答

慕神8447489

我刚发完邮件就想出来了:$query = $database->prepare('SELECT * FROM table WHERE column LIKE ?');$query->execute(array('value%'));while ($results = $query->fetch()){     echo $results['column'];}

大话西游666

要使用LIKE和%部分匹配,您还可以这样做:column like concat('%', :dangerousstring, '%')使用命名参数:dangerousstring..换句话说,在您自己的查询中显式使用未转义%符号,这些符号是分开的,绝对不是用户输入。编辑:我发现的另一种级联语法是使用串联运算符:\,所以它将变成简单的:where column like '%' || :dangerousstring || '%' etc@Bobince提到这里这一点:这个难度当您想要允许一个文字%或_搜索字符串中的字符,而不让它充当通配符。所以,这是其他的东西,当结合相似和参数化时要注意。

吃鸡游戏

$query = $database->prepare('SELECT * FROM table WHERE column LIKE ?');$query->bindValue(1, "%$value%", PDO::PARAM_STR);$query->execute();if (!$query->rowCount() == 0)&nbsp;{&nbsp; &nbsp; while ($results = $query->fetch())&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; echo $results['column'] . "<br />\n";&nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;else&nbsp;{&nbsp; &nbsp; echo 'Nothing found';}
随时随地看视频慕课网APP
我要回答