在sql数据库中插入$符号

时间:2012-02-17 19:27:01

标签: android sql

如何在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');

请帮帮我。

4 个答案:

答案 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');
                                              /\