是否可以绑定Param WHERE名称,如%:name%

问题描述 投票:3回答:1

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

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

$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%,但我不知道这是否实际上可行吗?

我收到错误:

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

而且我可以看到在test1%'test1'%中加上了''的错误

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

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

$sql->execute(array(":name" => "%" .$search . "%"));
php sql pdo bindparam
1个回答
6
投票

使用

LIKE CONCAT('%', :name, '%')
© www.soinside.com 2019 - 2024. All rights reserved.