所以在我的服务器上,我有:

app.get('/getposts/:pageno', (req, res) => {

  let pageno = req.params.pageno

  connection.query('SELECT * FROM mytable LIMIT ? , 3', [pageno], function(err, rows, fields){
        if(err){
            console.log(err);
        }

        res.send(rows);

        console.log(pageno);
    });

});


当我尝试像访问它时:http://localhost:3000/getposts/2

我收到错误消息:

{ Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use near ''2' , 3'

 code: 'ER_PARSE_ERROR',
  errno: 1064,
  sqlMessage: 'You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use near
\'\'2\' , 3\' at line 1',
  sqlState: '42000',
  index: 0,
  sql: 'SELECT * FROM mytable LIMIT \'2\' , 3' }


pageno记录在控制台中。我将LIMIT的第一个参数作为? [pageno]传递,如其official notes中所述。如果我键入2LIMIT 2,3中的任何其他数字,它将起作用。我表中有一千多条虚拟记录。

也试过了
var sql = 'SELECT * FROM mytable LIMIT ' + connection.escape(pageno) + ', 3';
并在sql中使用了connection.query,但存在相同的错误。

我究竟做错了什么?请帮忙。

最佳答案

您可以尝试parseInt()作为页码。

关于mysql - 无法与node-mysql分页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47496572/

10-12 14:08