如何在android中的sql数据库中插入$符号?
当我试图插入$和'符号时。 它给出了如下错误,
02-18 00:39:39.821: E/AndroidRuntime(946): android.database.sqlite.SQLiteException: unrecognized token: "$": INSERT INTO NoteLists (time, data, color) VALUES ('12:39:39 AM Feb 18, 2012', '&/:;()!@".,?'$<>','#D2FF00');
请帮帮我。
答案 0 :(得分:3)
试着逃避他们。 \$
和''
。
否则将这些符号放入字符串并使用参数绑定,出于安全原因建议使用参数绑定。
答案 1 :(得分:2)
您永远不应将原始值直接放入查询中。这允许SQL Injection这是一个严重的安全漏洞。
您应该做的是使用SQLiteStatement创建一个SQLiteDatabase.compileStatement()对象,然后使用绑定函数。例如:
s = db.compileStatement("INSERT INTO NoteLists (time, data, color) VALUES (?, ?, ?);");
s.bindString(1, "12:39:39 AM Feb 18, 2012");
s.bindString(2, "()!@\".,?'$<>");
s.bindString(3, "#D2FF00");
s.executeInsert();
您也可以尝试InsertHelper。它可能会使事情变得更简单。
答案 2 :(得分:0)
$
之前是未转义的'
,这意味着SQLite仅将&/:;()!@".,?
解析为字符串,其余字符($<>
)会导致语法溢出
请尝试将'
替换为''
。
答案 3 :(得分:0)
?
和$
之间的单引号需要使用两个单引号进行转义。
INSERT INTO NoteLists
(time, data, color)
VALUES \/
('12:39:39 AM Feb 18, 2012', '&/:;()!@".,?''$<>','#D2FF00');
/\