【问题标题】:Using Javascript variables in MYSQL queries在 MYSQL 查询中使用 Javascript 变量
【发布时间】:2013-07-26 00:39:44
【问题描述】:

我一直在研究这个问题,但似乎找不到任何好的信息。

我在 EC2 实例上运行 node.js 服务器,需要使用以下代码向 MYSQL 表中添加行:

client.query('SELECT curattend FROM table1 WHERE ind=1', function(err,result){
        att = result[0].curattend;
        console.log(att);

        client.query("INSERT INTO archive (attendance) VALUES ('att')", function(err,info){
                });

        console.log(att);

        });

我在前后打印了“att”,以确保...att 等于“233”。但是,数字“0”不断上传到 MYSQL 表中。

谁能给我指出一个可以帮助我解决这个问题的资源?

【问题讨论】:

    标签: javascript mysql node.js database


    【解决方案1】:

    根据user2246674的建设性cmets,我今天也学到了一些东西。

    而不是这样:

    client.query("INSERT INTO archive (attendance) VALUES (" + att + ")"
    

    试试这个:

     var att  = result[0].curattend;
     client.query("INSERT INTO archive (attendance) VALUES (?);", [att], function(err,info){ });
     // This creates the insert statement INSERT INTO archive (attendance) VALUES (att);
    

    【讨论】:

    • 哦,是的,SQL 注入(或意外损坏)的全新时代——肯定有一个更好的 i> 方式?因为,我最不想看到的就是这些垃圾。
    • 哦,是的。这已经在几年前解决了,谢天谢地,it's also appears solved in node.js。 (它可能会使用转义与适当的准备语句,但问题是:您不必担心将数据传递给 SQL!)
    【解决方案2】:

    你的代码应该是:

    ('"+att+"')"
    

    【讨论】:

    • 你能更好地解释你的答案吗?
    猜你喜欢
    • 2013-05-15
    • 2020-06-16
    • 1970-01-01
    • 2018-12-27
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    相关资源
    最近更新 更多