2017-12-04 7 views
0

私はこのコードを実行すると、私はコンソールreq.params.Tables_in_my_dbにログインした場合、私は、しかし、次のエラーNode.jsのMYSQLparseエラー

Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Copy'' at line 1

を取得するには、次のコード

db.query("SELECT * FROM ?", [req.params.Tables_in_my_db], function(error, rows, fields) { 
    if (error) 
     throw error; 

    //code... 

    db.end(); 
}); 

を持っています、私は文字列のコピーを取得します。どうすればこの問題を解決できますか?

ありがとうございます。

+0

「コピー」という名前のテーブルをお探しですか? –

+0

私はデータベース内の各テーブルの別のビューを作成しようとしています。コピーはそれらのテーブルの1つです。 – fhernan22

答えて

0

"?" (SELECT * FROM table_name WHERE column_name =?)、動的テーブルを使用する場合はif文を使用し、目的のテーブルを文字列に連結し、その文字列を最初のパラメータに渡しますdb.query()。

var query = "SELECT * FROM"; 
if (req.params.table_code == 1) { 
    query += " your_desired_table"; 
} else if (req.params.table_code == 2) { 
    query += " another_desired_table"; 
} else { 
    //return an error here to avoid sql injection, use a code for each of 
    //the table you only want to use 
} 

db.query(query, .... 
+0

私は今、これが私が必要としていた助けに感謝します。 – fhernan22

+0

正しい答えとしてマークすることを忘れないでください:)感謝 –