2017-04-03 73 views
0

我如何執行SQL查詢以將數據插入數據庫。請注意,表dbo.Plans中的字段PlanDetails是一個文本字段。但是,當用戶試圖輸入包含撇號的句子時(例如,我將去睡覺)。通過HTML表單。在這種情況下,我應該如何修改下面的代碼以使它接受帶撇號的句子?據說我可以使用參數化查詢。在這個例子中,節點js的例子,我該怎麼辦呢?如何使SQL查詢文本參數接受包含撇號的句子

CreatePlan : function (newPlan , UserID, DisplayName, Email, callback) { 
    var sql = require('mssql'); 
    var config = require('./configuration/sqlconfig'); 
    var conn = new sql.Connection(config); 
    var req = new sql.Request(conn); 
    conn.connect(function (err) { 
     if (err) { 
      console.log(err); 
      return; 
     } 
     console.log('Attempting to Insert new learning plan...'); 
     req.query('INSERT INTO dbo.Plans (PlanTitle, PlanTopic, OwnerID, OwnerName, PlanDetails, TargetLearners, OwnerContact) VALUES ("' + newPlan.PlanTitle + '", "' + newPlan.PlanTopic + '", "' + UserID + '", "' + DisplayName + '", "' + newPlan.PlanDetails + '", "' + newPlan.TargetLearners + '", "' +Email+ '");', function (err) { 
      if (err) { 
       console.log(err); 
      } else { 
       console.log("Added one new learning plan"); 
       console.log("The new plan title is " + newPlan.PlanTitle); 
       callback(); 
      } 
      conn.close(); 
     }); 
    }); 
}, 

回答

0

在SQL(和許多其他語言),你必須轉義特殊字符以避免在代碼中的任何含糊之處。有很多文檔瞭解如何逃避和字符的所有其他有關互聯網

以下是有關轉義字符維基百科的文章:https://en.wikipedia.org/wiki/Escape_character

這裏是一個計算器的職位,回答你的問題:How do I escape special characters in MySQL?

不過我要提醒你有關SQL注入,您所使用的代碼不會是安全的,你應該看看在這個問題上的良好做法。

+0

你還可以共享一個我可以學習如何在Node JS中使用參數化SQL查詢的源代碼?謝謝!! –

+0

我很肯定你有你需要的一切來自己做。 (我也從未在節點上使用SQL,所以我不比你更喜歡這個主題) – Sylvain

相關問題