这是我的sql代码与php结合
$query = sprintf("SELECT SUM( value ) AS totalvalue
FROM (
SELECT *
FROM answers
WHERE user_id='%s'
AND test_id ='%s'
ORDER BY answers.id DESC
LIMIT '%s'
)
AS subquery",
$user_id,
mysql_real_escape_string($test_id),
$num_of_q);
这是错误:
您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在''40'附近使用正确的语法)AS子查询'在第8行
这里有什么问题?
答案 0 :(得分:3)
从限制值中移除''
,并在使用数字时使用%d
:
$query = sprintf("SELECT SUM( value ) AS totalvalue
FROM (
SELECT *
FROM answers
WHERE user_id='%s'
AND test_id ='%s'
ORDER BY answers.id DESC
LIMIT %d
)
AS subquery",
$user_id,
mysql_real_escape_string($test_id),
$num_of_q);
答案 1 :(得分:2)
我认为您正在将限制值扫描为字符串。把它读作int值。这将解决我认为的问题
答案 2 :(得分:1)
您不需要LIMIT
的引号。 LIMIT
期待一个数字,而你提供一个字符串。
将其更改为:
LIMIT %d
我建议对WHERE
test_id
条user_id
和INT
进行相同的操作,如果类型为{{1}}