如何在PDO预处理语句中使用LIKE子句?

Mus*_*aie 11 php mysql pdo

我有这样的SQL查询:

SELECT * FROM tbl_name WHERE title Like "%:needle%"
Run Code Online (Sandbox Code Playgroud)

当我使用此语句手动查询MySQL数据库时,它可以工作.但是当我使用它与PDO并使用相同的值时:我手动查询的针它只返回一个空的结果集.

utf8编码会影响它的行为吗?

Win*_*ian 17

使用PDO,可以这样做:

$stmt = $db->prepare("SELECT * FROM tbl_name WHERE title LIKE :needle");
$needle = '%somestring%';
$stmt->bindValue(':needle', $needle, PDO::PARAM_STR);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)


Nul*_*teя 8

试试吧

$sql = 'SELECT * FROM tbl_name WHERE title Like ":needle"';

$prep = $dbh->prepare($sql);

$ret = $prep->execute(array(':needle' => '%'.$somestring.'%'));
Run Code Online (Sandbox Code Playgroud)