PHP PDO不会返回任何结果

时间:2012-08-26 17:27:30

标签: php pdo

我目前遇到一些我无法弄清楚的问题,我想我错过了一些东西 这是不起作用的代码(出于某种原因):

$search = "my search keyword";
$findTopics = $db->prepare('SELECT * FROM topics LEFT JOIN forum ON forum.f_id = topics.f_id WHERE topics.keywords LIKE "%:keyword%"');
$findTopics->bindValue(':keyword', $search);
$findTopics->execute();
var_dump($findTopics->fetchAll(PDO::FETCH_ASSOC));

执行上述代码时的结果是空数组array(0) { } 如果您将:keyword更改为my search keyword并删除$findTopics->bindValue(..),则会返回结果。如果您通过控制台直接在mysql中执行它,查询也可以正常工作。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:4)

将前两行更改为:

$search = "%my search keyword%";
$findTopics = $db->prepare('SELECT * FROM topics LEFT JOIN forum ON forum.f_id = topics.f_id WHERE topics.keywords LIKE :keyword');

它应该可以正常工作。

PDO会为您添加参数的引号。