使用PDO参数化查询来创建带有LIKE语句的方法
P粉394812277
P粉394812277 2023-08-22 12:33:39
0
2
628
<p>这是我尝试的代码:</p>
$query = $database->prepare('SELECT * FROM table WHERE column LIKE "?%"');

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

while ($results = $query->fetch()) 
{
    回显$结果['列'];
}</pre></p>            
P粉394812277
P粉394812277

全部回复(2)
P粉722521204

对于使用命名参数的用户,以下是如何在MySQL数据库中使用LIKE进行%部分匹配的方法:

WHERE column_name LIKE CONCAT('%', :dangerousstring, '%')

其中命名参数为:dangerousstring

换句话说,您在自己的查询中使用明确的非转义%符号,这些符号与用户输入分开。

编辑:对于Oracle数据库,连接语法使用连接运算符:||,所以它将简化为:

WHERE column_name LIKE '%' || :dangerousstring || '%'

然而,正如@bobince在这里提到的,还有一些注意事项:

因此,在结合like和参数化时还需要注意其他事项。

P粉731861241

发布后就找到答案了:

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

while ($results = $query->fetch())
{
    echo $results['column'];
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板