使用Node.js在MySQL中创建表

使用Node.js在MySQL中创建表,mysql,node.js,Mysql,Node.js,我想从Node.js在MySQL中动态创建一个表 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); el

我想从Node.js在MySQL中动态创建一个表

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);
                    });
它起作用了


所以,我的问题是如何动态创建表?

您正在尝试使用参数化查询替换表名。你不能那样做™. 列名也不能这样做

您需要使用不带
参数的数据定义语言编写包含文本字符串的代码,然后运行它。在JS中使用字符串操作很容易做到这一点

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

在连接之前,请确保清除req.params.username,因为这当前易受SQL注入攻击