是否可以像%:name%那样绑定Param WHERE名称 [英] Is it possible to bindParam WHERE name like %:name%

查看:87
本文介绍了是否可以像%:name%那样绑定Param WHERE名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在测试一个小的搜索功能:

I'm testing a small search feature:

但是我遇到了一个我似乎无法解决的错误.您可以在此处查看PDO查询:

But I've come across an error that I cannot seem to solve. You can see the PDO query here:

$search = "test1"; //later to be changes to $_POST ['search'];

$sql = "SELECT id, name FROM clients WHEE name like %:name% order by id LIMIT 5";
$stm = $db->prepare ( $sql );
$stm->bindParam ( ":name" , $search);
$result = $stm->execute ();

如您所见,我正在尝试从查询中绑定参数%:name%,但是我不知道这是否真的可能吗?

As you can see, I'm trying to bind the parameter %:name% from my query, but I don't know if that's actually possible?

我收到错误:

未捕获的异常"PDOException",消息为"SQLSTATE [42000]:.....

Uncaught exception 'PDOException' with message 'SQLSTATE[42000]:.....

我可以在错误中看到''已放在test1%'test1'%

And I can see in the error that '' has been put around test1 %'test1'%

这是我正在尝试的可能性吗,还是我需要做类似的事情?

Is what I'm trying possible, or do I need to do something like this?

$query = "SELECT id, name FROM clients WHEE name like :name order by id LIMIT 5";

$sql->execute(array(":name" => "%" .$search . "%"));

推荐答案

使用

LIKE CONCAT('%', :name, '%')

这篇关于是否可以像%:name%那样绑定Param WHERE名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆