MySQL 查询如何在有和没有占位符的情况下工作 (?)



我有两种方法可以在node.js中执行sql查询,我想知道这两者之间的区别。建议使用哪一个?以及为什么??

第一种方法

var userId = 1;
var columns = ['username', 'email'];    
var query = connection.query('SELECT ?? FROM ?? WHERE id = ?', 
  [columns, 'users', userId], function(err, results) 
{   
  // ... 
});

第二种方法

var userId = 1;
var query = connection.query('SELECT username,email FROM UserTable WHERE id=?', 
  [userId], function(err, results) 
{   
  // ... 
});

请告诉我这两种机制的确切用法。

替换

字符串中??的双问号语法将替换的参数包装在分隔符中,然后再将它们发送到服务器。分隔符适用于表名和列名。所以你的第一个例子,'SELECT ?? FROM ?? WHERE id = ?'发送

SELECT `username`, `email` FROM `users` WHERE id = '1'

到服务器。

第二个,'SELECT username,email FROM UserTable WHERE id=?',发送

SELECT username,email FROM UserTable WHERE id='1'

相关内容

最新更新