2015-10-04 81 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 –

相關問題