【问题标题】:Is it possible to bindParam WHERE name like %:name%是否可以绑定参数 WHERE 名称,如 %:name%
【发布时间】:2015-01-19 00:06:52
【问题描述】:

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

但是我遇到了一个似乎无法解决的错误。您可以在此处查看 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%,但我不知道这是否真的可能?

我收到错误:

带有消息“SQLSTATE[42000]”的未捕获异常“PDOException”:.....

我可以在错误中看到 '' has been put around test1 %'test1'%

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

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

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

【问题讨论】:

  • 这个问题已经有答案了,请查看网址。 stackoverflow.com/questions/11068230/…
  • 您将WHERE 拼错为WHEE
  • 我回滚了您后来的编辑,因为他们修复了评论和答案帮助您解决的问题。

标签: php sql pdo bindparam


【解决方案1】:

使用

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

【讨论】:

    猜你喜欢
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多