2016-06-24 4 views
1

SQL Serverテーブルに文字列を挿入しようとすると、SQL RequestErrorが発生します。文字列はcom.softek.ofxclmobile.patriotfcuです。私は、文字列のピリオドがある種の赤い旗を投げていると思います。それはオブジェクトのいくつかのプロパティ、またはそれらの線に沿ったものへの参照です。私は要求のためにmssqlノードモジュールを使用しています。SQL RequestErrorを回避する方法: "複数の部分の識別子...バインドできませんでした"

let myObj = { 
    Date: '2015-06-22', 
    PackageName: 'com.softek.ofxclmobile.patriotfcu' 
} 

let date = myObj['Date'] 
let pName = myObj['PackageName'] 

request.query('insert into myTable ([DATE],[PackageName]) values (' + date + ',' + pName + ')) 

私は、ドット表記を使用しないようにしようについてのオンライン何かを発見していないが、私は表記に取得しようと、反対側の一部を発見しました。私も見ましたが、文字通り期間を期間として保持するRegExpキーワードはありません。

正確なエラー:

REQ ERROR 
{ [RequestError: The multi-part identifier "com.softek.ofxclmobile.patriotfcu" could not be bound.] 
    name: 'RequestError', 
    message: 'The multi-part identifier "com.softek.ofxclmobile.patriotfcu" could not be bound.', 
    code: 'EREQUEST', 
    number: 4104, 
    lineNumber: 1, 
    state: 1, 
    class: 16, 
    serverName: 'PFCUAPPDEV01', 
    procName: '' } 
+0

「リクエスト」とは何ですか? *返された実際のエラーメッセージを投稿してください。 –

+1

SQL文で文字列を引用する必要があるため、これを回避して注入攻撃を防ぐために、準備済み/パラメータ化された挿入を使用する必要があります。 –

+0

実際にエラーが発生しました。 – AmishJohn81

答えて

2

は、あなただけの安全のために、SQLに

request.query("insert into myTable ([DATE],[PackageName]) values ('" + date + "','" + pName + "')") 

をラップするために二重引用符を使用することができ、次の2つの単一引用符ではpNameで任意の単一引用符を置き換えたいことがあり

+0

ありがとう!これはこの問題を解決したようです! – AmishJohn81

+0

お寄せいただきありがとうございます。乾杯 –

関連する問題