Android - DatabaseUtils.sqlEscapeString()不起作用

时间:2016-07-12 07:29:33

标签: android sqlite

我想在数据库中插入“women's cloth”,所以我使用

String name = DatabaseUtils.sqlEscapeString("women's cloth");

但它会像

一样发出
"'Women''s Clothing'"

并在插入应用程序崩溃时提供

E/SQLiteLog: (1) near ",": syntax error

---------崩溃开始-----------------

07-12 12:42:19.628 22387-22521/com.i4ustores E/AndroidRuntime: FATAL EXCEPTION: Thread-8634
android.database.sqlite.SQLiteException: near ",": syntax error (code 1): 

1 个答案:

答案 0 :(得分:0)

从简单的代码中,我猜你手动创建SQL语句。 尝试使用String.format

String query = String.format("SELECT * FROM %s WHERE %s = ?",
                      TABLE_NAME, SEARCH_KEY);

阅读详情:Local Databases with SQLiteOpenHelper

或尝试使用PreparedStatement,如下所示:

PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                     SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00)
pstmt.setInt(2, 110592)

请注意 parameterIndex (即上面代码中的1和2)从1开始。