【问题标题】:Not able to insert data into table using Nodejs无法使用 Nodejs 将数据插入表中
【发布时间】:2015-10-04 09:15:06
【问题描述】:
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);
     });

//插入查询报错。我不知道我犯了什么语法错误。有人可以帮忙吗。正在创建表。我在插入中面临的错误是

ERROR:ER_PARSE_ERROR:您的 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的手册 ''sad'(membername,email) VALUES('hunur','Sachin) 附近使用的语法 Mallikarjun')' 在第 1 行

这里sad作为表名的参数传递

【问题讨论】:

    标签: mysql node.js node-mysql


    【解决方案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));
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多