将MySQL Limit参数转换为数字

时间:2013-01-24 16:40:27

标签: javascript mysql rest

我对MySql数据库的Rest调用有问题。

我使用JS对象并通过使用java后端的rest get调用发送它。

    requestParams: {
        pageStart: 0,
        results: 10
    } 

我已为此请求配置了查询

"get-users" : "SELECT * FROM ${_dbSchema}.${_table} LIMIT ${pageStart}, ${results}"

但是queryParams会在后端将字符串转换为字符串,并且在响应中我会收到此错误

{"error":500,"reason":"Internal Server Error","message":"DB reported failure executing query SELECT * FROM shema.user LIMIT ?, ? with params: {results=10, pageStart=0} error code: 1064 sqlstate: 42000 message: 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', '10'' at line 1"}

我可以在sql-query中解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

从错误消息中:

  

{“error”:500,“reason”:“内部服务器错误”,“消息”:“DB报告失败执行查询SELECT * FROM shema.user LIMIT?,?with params:{results = 10,pageStart = 0}错误代码:1064 sqlstate:42000消息:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在第1行“0”,“10”附近使用正确的语法}

似乎LIMIT子句中的数值被设置为字符串而不是数字,因为它们用单引号括起来,例如''0', '10'',从错误通知的摘录中,每个数字(010)如何用单引号'0''10'括起来。