Sql statement JavaScript

Sql statement JavaScript

本文关键字:JavaScript statement Sql      更新时间:2023-09-26

我在executeSql中看到的语句如下:

addTodo: function (text) {
        app.db.transaction(function (tx) {
            var ts = new Date();
            tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (?,?)", [text, ts], app.onSuccess, app.onError);
        });
    },

我的问题是:"价值观(?,?)"是什么意思?

这是一个准备好的语句,您应该使用它来防止SQL注入攻击。例如

var text = "foo";
var ts = "bar";
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (?,?)", [text, ts]);

与相同

tx.executeSql("INSERT INTO todo(todo, added_on) VALUES ('foo','bar')");

这些参数将被正确准备,并由SQL语句后面的数组参数替换。

所以

tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (?,?)", ['do this', '10/05/2014']);

将导致

INSERT INTO todo(todo, added_on) VALUES ('do this', '10/05/2014')