使用Node.js在MySQL中创build表

我想从Node.jsdynamic地在MySQL中创build一个表

con.query('CREATE TABLE ?', req.params.username + '(id INT(100) NOT NULL AUTO_INCREMENT, name TINYTEXT, PRIMARY KEY(id))', function (err, result) { if (err) console.log(err); else console.log('Table created ' + result); }); 

当查询是硬编码的,

 con.query('CREATE TABLE Sample (id INT(100) NOT NULL AUTO_INCREMENT, name TINYTEXT, PRIMARY KEY(id))', function (err, result) { if (err) console.log(err); else console.log('Table created ' + result); }); 

有用。

所以,我的问题是如何dynamic创build一个表?

您正尝试使用参数化查询replace表名称。 你不能做那个。 你也不能用列名来做。

你需要用你的数据定义语言编写包含文本string的代码? 参数,然后运行它。 JS中的string处理很容易。

 var tableDef = 'CREATE TABLE '+ req.params.username + ' (id INT(100) NOT NULL AUTO_INCREMENT, name TINYTEXT, PRIMARY KEY(id))'; con.query(tableDef, ...etc )