MySQL查詢我有以下查詢我使用的查詢功能(https://github.com/mysqljs/mysql#escaping-query-values):逃逸問號字符作爲佔位符中的NodeJS
database.query("UPDATE Project SET Content = 'Hello ?' WHERE Id = ?", [id], function(err, rows, fields) {
if (err) {
console.log(err);
res.json({ status: 'FAIL QUERY' });
} else {
res.json({ status: 'SUCCESS' });
}
});
我有一個錯誤,因爲它正在取代問號上「'你好?'」和「WHERE ID =?」而他只有一個屬性:[id]。 如何避免這種情況?
用戶會被告知這種行爲(並且還解釋了這一點,儘管沒有太多的說法,提供的功能比官方執行準備好的語句更方便)。還有其他選項可用。 – robertklep
@robertklep,不管行爲是否記錄在案,這是錯誤的。我認爲Node.js應該是如此的熱門,比PHP好得多 - 但PDO確實解析了參數。對不起,我不接受這個錯誤的藉口。這實在令人失望,特別是對於已經存在數年的軟件包而言。 –
PHP與此有什麼關係?此外,如果您對此感到如此強烈,請隨時發佈錯誤報告:https://github.com/mysqljs/mysql/issues此外,這不是Node的唯一MySQL庫,['mysql2']( https://開頭github上。com/sidorares/node-mysql2#using-prepared-statements)支持正確的預處理語句。 – robertklep