使用LIKE和通配符进行参数化查询的正确PDO语法(ex%,_)

时间:2012-02-04 06:06:54

标签: php mysql

以下语法是我现有的语法。

$dbh = connect();
$singer = strtolower($_GET["singer"]);

$SQL =
      "SELECT *
        FROM table
        WHERE field1 LIKE ?
        ORDER BY field2 ASC";

$sth = $dbh-> prepare ($SQL);
$sth->bindParam (1, $singer);
$sth->execute();

我需要对代码行WHERE field1 LIKE ?进行哪些更改才能使用通配符%执行查询?

我已经尝试了WHERE field1 LIKE '%?%'但是没有用。

我是否必须先加'%

并附加%'

存储在$singer

中的值

1 个答案:

答案 0 :(得分:9)

TRY

$str = "%".$singer."%";
$SQL =
      "SELECT *
        FROM table
        WHERE field1 LIKE ?
        ORDER BY field2 ASC";

$sth = $dbh-> prepare ($SQL);
$sth->bindParam (1, $str);

Reference ==>见第3个例子