2015-07-05 2 views
0

Во-первых, у меня есть слабое умение.создавать таблицы с массивом String в node.js

(с помощью модуля MySQL)
Я хочу создать таблицы (5 столов) с той же самой колонке

, но у меня есть сообщение об ошибке,

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 ''pre'( R varchar(5), Name varchar(20), Team varchar(20), Age varchar(5), Positio' at line 1

мой код здесь

post=['pre','b','c','d','e']; 
conn.query('create table ?(\ 
    R varchar(5), Name varchar(20), Team varchar(20), Age varchar(5), Position varchar(20), Apps varchar(5), Yel varchar(5) , Red varchar(5), AerialsWon varchar(5), MotM varchar(5), \ 
    Tackles varchar(5), Inter varchar(5), Fouls varchar(5), Offsides varchar(5), Clear varchar(5), OwnG varchar(5),\ 
    Goals varchar(5),SpG varchar(5), Drb varchar(5), Fouled varchar(5), Off varchar(5), Disp varchar(5),\ 
    Assists varchar(5), KeyP varchar(5), AvgP varchar(5), PsR varchar(5), Crosses varchar(5),Thrb varchar(10))', post, function(err, rows, fields) { 
     if (err) throw err;  
     console.log('//2.Create pre table'); 
});  

Когда я вставляю значение, (? И post array) работает. но (? и post array) не работают в имени таблицы.

+0

Вы не можете параметризовать имя таблицы. Похожие темы: http://stackoverflow.com/questions/11312737/can-i-parameterize-the-table-name-in-a-prepared-statement – Seiya

+0

спасибо. Я прочитал ссылку. но я не могу понять. это невозможно? –

ответ

1

Да, это невозможно. Но вы можете использовать конкатенацию строк:

var table_name = 'pre'; 
var query = 'CREATE TABLE ' + table_name + '...'; 

Остальное останется прежним.

+0

спасибо! Seiya! –

Смежные вопросы