为什么这个MySQL语句会导致语法错误错误?

时间:2013-12-08 13:56:00

标签: php mysql

我遇到了问题,无法找到答案。以下陈述

SELECT (title, content, keywords, descr, sidebar) FROM staticpages WHERE  req = 'index'

抛出以下错误

Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0' at line 1

我用mysql_real_escape_string插入字符串'index',但我已经验证它包含'index'。数据库中有一个适合WHERE的条目(即使没有,也不应该有语法错误)。

//编辑:查询由以下PHP代码生成:

if ($res = $db->query("SELECT title, content, keywords, descr, sidebar FROM staticpages WHERE  req = '"+$db->real_escape_string($page)+"'")) {
    //...
} else {
    echo "Error " . $db->errno . ": " . $db->error;
}

$db包含一个mysqli实例,$page包含字符串"index"

6 个答案:

答案 0 :(得分:2)

您有两个SELECT关键字

  SELECT SELECT (title, content, keywords, descr, sidebar) FROM staticpages WHERE  req = 'index'
  -------^

删除其中一个。

答案 1 :(得分:0)

你有两个选择,字段列表不应该是parens ......

select
      field1,
      field2,
      field3
   from
      yourtable
   where
      someCondition
   order by
      someFieldChosen

答案 2 :(得分:0)

试试这个 - 没有圆括号:

SELECT title, content, keywords, descr, sidebar
FROM staticpages 
WHERE  req = 'index'

答案 3 :(得分:0)

SELECT `title`, `content`, `keywords`, `descr`, `sidebar` FROM staticpages WHERE  `req` = 'index'

不知道你在使用什么php模板但是尝试

'".$db->real_escape_string($page)."'

答案 4 :(得分:0)

这只是我自己的愚蠢:

在PHP中,+运算符不会合并字符串。很抱歉打扰你这个问题。

解决方案:使用字符串连接运算符.

答案 5 :(得分:0)

SELECT titlecontentkeywordsdescrsidebar FROM staticpages WHERE req ='index'< / p>