我正在开发Firefox的扩展,我已经创建了SQLite DB。在表中插入值时,我收到一条错误消息:
错误:http://en.wikipedia.org在<>上调用方法UnnamedClass.toString的权限被拒绝。
要插入的字符串值存储在变量中。
var book = "Harry Potter";
var myInsertQuery = 'INSERT INTO mybooks_tbl(title) VALUES('+ book + ');';
我们如何将数据作为变量而不是字符串插入表中?
SQLite遵循string literals的ANSI标准:
通过将字符串括在单引号(')中形成字符串常量。字符串中的单引号可以通过在行中放入两个单引号来编码
所以:
function sqlstr(s) {
return "'"+s.replace(/'/g, "''")+"'";
}
var query= 'INSERT INTO books(title) VALUES('+sqlstr(book)+');';
您必须记住要逃避所有这样的字符串文字,否则您将创建一个客户端SQL注入漏洞。
字符串中只有错误var query ='INSERT INTO books(title)VALUES('+ sqlstr(book)+');';
tx.executeSql('INSERT INTO CLASS_LIST(“class_title”,“”)VALUES(“+ v.classTitle +”)');