我遇到了问题,无法找到答案。以下陈述
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"
。
答案 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 title
,content
,keywords
,descr
,sidebar
FROM staticpages WHERE req
='index'< / p>