【问题标题】:PDO "SELECT" not returning result [duplicate]PDO“SELECT”不返回结果[重复]
【发布时间】:2016-01-28 21:54:46
【问题描述】:

我正在尝试让 PDO 返回通配符搜索的结果。我的代码是:

$search = "%Notes%"; 
$result = $db->prepare("SELECT * FROM books WHERE 'name' LIKE :search");
$result->bindParam(':search', $search);

$result->execute();

while($arr = $result->fetch(PDO::FETCH_ASSOC)){
        echo $arr['name'];
}

目前,我得到一个空白屏幕。如果我通过 PHPMyAdmin 运行续集:

SELECT * FROM books WHERE name LIKE '%Notes%'

我得到了适当的结果。

我认为这与我格式化 PDO 语句的方式有关,我知道您不能使用动态列名,但我不知道出了什么问题?

【问题讨论】:

  • 尝试将 % 移动到查询中并仅绑定 Notes
  • 然后抛出语法错误
  • name 周围有引号。那是无效的,让它反引号
  • 谢谢@JohnRuddell 我太笨了……
  • 确定我已经回答了,所以我们可以关闭它

标签: php mysql pdo


【解决方案1】:

在您的查询中,您有 'name' 将其更改为只是反引号而不是引号

又名

$result = $db->prepare("SELECT * FROM `books` WHERE `name` LIKE :search");

你也可以去掉反引号

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多