我正在運行一個查詢,它給了我混亂的結果。我有一個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查詢將容易受到代碼注入。 –