简体   繁体   English

PHP PDO不返回任何结果

[英]PHP PDO doesn't return any result

I'm currently having a bit of a problem I can't figure out and I guess I'm missing something. 我目前遇到一些无法解决的问题,我想我缺少了一些东西。
This is the code that doesn't work (for some reason): 这是无效的代码(由于某种原因):

$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));

The result when executing the above code is an empty array array(0) { } . 执行以上代码时的结果是一个空数组array(0) { }
If you change :keyword to my search keyword and remove $findTopics->bindValue(..) it returns results. 如果将:keyword更改为my search keyword然后删除$findTopics->bindValue(..)它将返回结果。 Also the query works fine if you execute it directly in mysql via a console. 如果通过控制台直接在mysql中执行查询,查询也可以正常工作。

What am I missing here? 我在这里想念什么?

Change the first two lines to: 将前两行更改为:

$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');

and it should work fine. 它应该可以正常工作。

PDO will add the quotes around the parameters for you. PDO将为您在参数周围添加引号。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM