2015-10-04 66 views
0
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); 
    }); 

//插入到查询中会出现错误。我无法弄清楚我所做的语法错误。有人可以请帮忙。表正在创建中。我对着在插入的错误是无法使用Nodejs将数据插入到表中

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 ''sad'(membername,email) VALUES('hunur','Sachin Mallikarjun')' at line 1

这里作为表名

回答

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)); 
+0

感谢验证这个有很多Baao –

+1

@sachinhunur考虑接受的答案,如果它解决了问题http://stackoverflow.com/help/someone-answers –

相关问题