查询在MYSQL中执行,但在PHP中不执行

时间:2015-12-29 21:44:10

标签: php mysql

似乎有很多关于此问题的讨论,但解决方案没有解决我的问题。

这是我的问题:

SELECT * FROM  `inductees` 
WHERE (first =  "Eric" OR last =  "Eric") 
OR (first =  "Ewing" OR last =  "Ewing")
ORDER BY  `year` DESC

当我将此查询粘贴到phpmyadmin的SQL框中时,我得到了确切的结果。当我尝试在php中查询它时,我得到了这个:

  

SQL错误:SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以便在#""""""""或者最后="杰克")或者(首先="尤因"或者最后=" Ew'在第1行

编辑:

我尝试将单引号更改为双引号但无效。

这是代码。我通过使用此函数中注释掉的返回来获取上面的查询字符串

`if(!empty($query_vars)) {
 $query = "SELECT * FROM `inductees` WHERE ".implode(' AND ', $query_vars)." ORDER BY `year` DESC";
  //return $query;
  return $db->query($query)->execute();
} else {
  return self::all();
}`

1 个答案:

答案 0 :(得分:3)

看起来你没有正确地转义代码中的双引号。尝试在查询中使用单引号(如果用双引号括起字符串)。