【问题标题】:SQL bindparam to like query not working [duplicate]SQL bindparam to like 查询不起作用[重复]
【发布时间】:2016-08-30 21:31:49
【问题描述】:

我有以下不返回任何结果的代码。当我将 :search_term 更改为 $search_term 时,它会按预期返回一个结果,但当我使用通配符时,它只会返回 0。

$query = $db->getConnection()->prepare("SELECT * FROM `coils` WHERE coil_name IS LIKE '%:search_term%' ORDER BY id DESC LIMIT {$start}, {$perPage}");
$query->execute(array(
    ':search_term' => $search_term
));

echo $query->rowCount()

我有一种感觉,我只是没有正确使用它。任何帮助都会很棒。谢谢!

【问题讨论】:

    标签: php mysql sql pdo


    【解决方案1】:

    您不应该在查询中使用引号并构建字符串,而是在绑定值时需要这样做(不带任何引号...):

    SELECT * FROM `coils` WHERE coil_name LIKE :search_term ORDER BY ...
    

    然后是:

    $query->execute(array(
        ':search_term' => '%' . $search_term . '%'
    ));
    

    另请注意,您可能应该使用LIKE 而不是IS LIKE

    【讨论】:

      猜你喜欢
      • 2013-02-03
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      • 2010-10-04
      相关资源
      最近更新 更多