在SQL查询中如何在LIKE运算符中使用bindValue?

时间:2019-01-20 13:47:53

标签: php sql

当我在查询中使用LIKE运算符时,我一直试图替换'%:value%'中的值。

我也尝试过使用CONCAT(),但是那也不起作用。

    $query = "SELECT * 
              FROM books
              WHERE title LIKE '%:title%'";
    ...
    ...
    statement->bindValue(':title', $title, PDO::PARAM_STR);

:title应该用变量$ title代替,但是不是。查询工作正常,但:title不会被替换。

2 个答案:

答案 0 :(得分:0)

您尝试像这样使用concat()吗?

SELECT * 
FROM books
WHERE title LIKE CONCAT('%', :title, '%')

答案 1 :(得分:0)

您可能想要:

$query = "SELECT * 
          FROM books
          WHERE title LIKE CONCAT( '%', :title, '%')";
...
...
statement->bindValue(':title', $title, PDO::PARAM_STR);

bind参数应用作垃圾字符串。 CONCAT可用于在两端用百分号连接参数。