2013-12-12 1 views
0

Я могу вставить две записи в таблицу «MY_TABLE» с помощью кода, приведенного ниже, с помощью API-хранилища Phone Gap с использованием sql lite.Поддерживает ли API-интерфейс хранения в памяти телефона подготовленные операторы для SQL lite

var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);          
    db.transaction(function (tx) { 
    tx.executeSql("INSERT INTO MY_TABLE (first_name,last_name) VALUES ('joe','smith'),('bob','wilson')"); 
    }, errorCB, function(){ 
    //success code 
    }); 

ли телефон Gap API есть механизм, как подготовленные заявления для рассмотрения вставок, которые имеют символы, такие как одинарные круглые скобки, которые могут ввести в заблуждение мой INSERT заявление?

ответ

3

Конечно:

tx.executeSql("INSERT INTO MyTable (FirstName, LastNname) VALUES (?, ?)", 
       ["Bobby", "Tables"]); 
+0

Эй CL спасибо за Ваш ответ! Любой шанс вы могли бы объяснить синтаксис немного. Например, какую роль играют вопросительные знаки, как это защищает от одиночной круглой скобки и как это можно расширить до нескольких вставок строк? –

+0

Любая строка может быть заменена на [параметр] (http://www.sqlite.org/lang_expr.html#varparam). Когда строка поступает от пользовательского ввода, это защищает от [SQL-инъекций] (http://en.wikipedia.org/wiki/SQL_injection), например [this] (http://xkcd.com/327/). В многострочных вставках нет ничего особенного. –

Смежные вопросы