无法使用Nodejs将数据插入表中

时间:2015-10-04 09:15:06

标签: mysql node.js node-mysql

exports.creategroup= function(callback,name,email,firstname)
 {
//  var connection=pool.getConnection();
var connection=connect();
console.log(email);
console.log(firstname);
var query="CREATE TABLE "+name+"(membername varchar(50) NOT NULL,email varchar(50) NOT NULL)";

  var query1="INSERT  INTO'"+name+"'(membername,email) VALUES('"+email+"','"+firstname+"')";
console.log(query);
connection.query(query,function(err,result){
    if(err)
        {
        console.log("ERROR:"+err.message);
        }
    else
        {
        if(result.length!==0)

        {
            console.log("DATA : "+JSON.stringify(result));
            callback(err, result);
        }
        else
        {
            callback("Invalid Username", result);
        }
        }
    //pool.returnConnection(connection);
     });

//插入查询会出错。我无法弄清楚我所犯的语法错误。请有人帮忙。该表正在创建中。我在插入中遇到的错误是

  

错误:ER_PARSE_ERROR:您的SQL语法中有错误;检查   手册,对应右边的MySQL服务器版本   语法使用附近'悲伤'(会员名称,电子邮件)价值观(' hunur',' Sachin   Mallikarjun')'在第1行

这里悲伤被作为表名

的参数传递

1 个答案:

答案 0 :(得分:1)

您已将表名放在'个刻度中,但这无效。以下将有效:

var query1="INSERT  INTO "+name+" (membername,email) VALUES('"+email+"','"+firstname+"')";

请注意,您绝对不应该运行这样的查询,因为它很容易受到mysql注入攻击。请改用转义查询node-mysql。

 var query = "INSERT INTO ?? (??,??) VALUES (?,?)";
 var values = [name,'membername','email',firstname,email];
 mysql.query(mysql.format(query, values), function(err,result,tableInfo){/*...*/})

像这样,node-mysql为您准备查询。每一个?表示每个表格或列名称?代表要插入的值。您可以通过

验证这一点
console.log(mysql.format(query,values));