使用Node.js在MySQL中创建表
我想从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
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注入攻击