2017-04-03 4 views
0

データベースにデータを挿入するSQLクエリをどのように実行していますか。テーブルdbo.PlansのPlanDetailsフィールドはテキストフィールドであることに注意してください。しかし、ユーザがアポストロフィを含む文章を入力しようとすると(例えば、私は眠りにつく)。 HTMLフォームを介してこの場合、アポストロフィで文を受け入れるために、以下のコードをどのように変更すればよいですか?パラメータ化されたクエリを使用できることが伝えられています。ノードJS例、私はSQLでは?アポストロフィを含む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

(および他の多くの言語では)、あなたは、コード内の任意のあいまいさを避けるために、特殊文字をエスケープする必要があることをどのように行うことができます。どのようにについてのドキュメントがたくさんありますエスケープとどの文字が他のすべてのインターネットに関係しているかを示します。https://en.wikipedia.org/wiki/Escape_character

私はあなたが使用しているコードは安全ではありません、あなたはおそらく、この問題では良い練習を見てみる必要があり、SQLインジェクションについて警告すべきであるしかし How do I escape special characters in MySQL?

:ここ

は、あなたの質問に答えるStackOverflowのポストです。

+0

ノードJSでパラメータ化されたSQLクエリを使用する方法を学ぶことができるソースを共有できますか?ありがとう!! –

+0

私はあなたが自分でそれをするために必要なものをすべて手に入れていると確信しています。 (私はノード上でSQLを使用したこともないので、私はあなたよりも優れていません) – Sylvain

関連する問題