我失败了。尽管这里有所有答案,但我无法做到这一点。如何在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);
两者都不会对我有用。我该如何理解这一点?
答案 0 :(得分:2)
您在两个查询中都缺少LIKE
子句。 bindParam
会自动处理所有引用,因此您无需在搜索字词周围添加单引号。
这应该有效:
$searchTerm = 'kfc%';
$stmt = $conn->prepare("select name from table where name LIKE :searchTerm");
$stmt->bindParam(':searchTerm', $searchTerm);
答案 1 :(得分:0)
虽然第二种方法毫无意义,但第一种方法似乎是正确的。你应该更加努力地使它发挥作用。可能表中没有与搜索词匹配的数据。