2017-10-14 13 views
-1

は、これは私のSQLクエリSQL動的クエリ構文エラー

"select * from applicant where email =ABC.Com" 

私は、テーブル名、columの名前と値をしたいです後どこそこの変数の形で動的な句。あなたは正しい構文を教えてくれますか?私は今、このクエリは=inputedEmailVariableの近くにエラーを与えている、これまで

"select * from " tableNameVariable+"where "columnNameVariable+"= "inputedEmailVariable 

これを試してみました。 注:nodejs関数でこの文字列を使用したいと思います。正しい構文を教えてください。

+1

"select + from" + tableNameVariable + "+ columnNameVariable +" = "" + inputedEmailVariable + "'" – Juan

答えて

1

試してみてください。

"select * from " + tableNameVariable + " where " + columnNameVariable + " = '" + inputedEmailVariable + "'" 
0

あなたは、いくつかの+演算子を行方不明、ともwhereの前にスペースを逃しています。

var sql = "select * from " + tableNameVariable + " where " + columnNameVariable + " = " + inputedEmailVariable 

これは、SQLインジェクションが発生する可能性があるため、変数がユーザー入力から来た場合は非常に注意する必要があります。変数には、アクセスが許可されている表と列の値が含まれていることを確認してください。

そして、列と文字列を比較する場合は、文字列の周りに引用符が必要です。しかし、変数を連結するのではなく、その時点でプレースホルダを使用する方がよいでしょう。

+0

プレースホルダの使い方は? –

+0

https://stackoverflow.com/questions/15778572/preventing-sql-injection-in-node-js – Barmar