我正在运行一个查询,它给了我混乱的结果。我有一个node.js服务器,它从客户端的一个表单接收一些用户输入,并使用socket.io获取服务器上的输入。这里是接收用户输入node.js和mySQL问题
databaseCheck(data);
function databaseCheck(userInput){
var mysql = require('mysql');
var connection = mysql.createConnection({
host : '12.34.56.78',
user : 'user',
password : 'password',
database : 'db'
});
connection.connect();
var query = connection.query('SELECT * from `table` WHERE `email` = userInput', function(err, rows, fields) {
if (!err) console.log(rows[0].username);
else console.log("connection failure");
});
connection.end();
}
所以,当过我使用此代码,它使印刷“连接失败”屏幕后运行的功能。当我用“[email protected]”替换userInput时不会发生这种情况,所以我猜测在查询中使用变量userInput存在一些问题。有人能告诉我我的代码有什么问题吗?
谢谢修复它。我也注意到它在我使用这个时会起作用:var query ='SELECT * from'table' WHERE'email' =“'+ userInput +'”; – Jay
@Jay该方法只适用于'userInput'不包含'''否则你的SQL查询将容易受到代码注入。 –