0

我失败了。尽管这里有所有答案,但我就是无法做到这一点。like在 mysql 中使用 php 的 pdo时如何绑定搜索词?

$searchTerm = 'kfc';
$stmt = $conn->prepare("select name from table where name like CONCAT('%',:searchTerm,'%')");
$stmt->bindParam(':searchTerm', $searchTerm);

or 

$searchTerm = 'kfc';
$stmt = $conn->prepare("select name from table where name like %:searchTerm%");
$stmt->bindParam(':searchTerm', $searchTerm);

两者都不适合我。我怎样才能得到这个正确的?

4

2 回答 2

2

LIKE在两个查询中都缺少该子句。bindParam将自动处理所有引用,因此您无需在搜索词周围添加单引号。

这应该有效:

$searchTerm = 'kfc%';
$stmt = $conn->prepare("select name from table where name LIKE :searchTerm");
$stmt->bindParam(':searchTerm', $searchTerm);
于 2013-11-05T12:18:11.083 回答
0

虽然第二种方法没有意义,但第一种方法似乎是正确的。你应该更加努力让它发挥作用。可能只是表中没有与搜索词匹配的数据。

于 2013-11-05T12:23:19.153 回答