似乎有很多关于此问题的讨论,但解决方案没有解决我的问题。
这是我的问题:
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();
}`
答案 0 :(得分:3)
看起来你没有正确地转义代码中的双引号。尝试在查询中使用单引号(如果用双引号括起字符串)。