使用PDO和MySql一样使用%%

时间:2013-11-05 12:13:37

标签: php pdo

我失败了。尽管这里有所有答案,但我无法做到这一点。如何在mysql中使用like与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);

两者都不会对我有用。我该如何理解这一点?

2 个答案:

答案 0 :(得分:2)

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

这应该有效:

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

答案 1 :(得分:0)

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