[英]Special chars in select
我选择了如下所示的内容:
mSelectionClause = "(lower(" + NAME_COLUMN + ") LIKE \'%" + name.toLowerCase() + "%\'";
但是,当我将名称设置为类似“”应用时,系统崩溃:
Caused by: android.database.sqlite.SQLiteException: near ""%' OR upper(display_name) LIKE '%'''''"": syntax error (code 1): , while compiling: (...)
如何防止选择特殊字符的值?
你可以试试看 因为这将转义您的特殊字符。
name = DatabaseUtils.sqlEscapeString(name);
为防止SQL命令中的字符串格式问题,请使用参数:
mSelectionClause = NAME_COLUMN + " LIKE ?";
String[] selectionArgs = new String[] { name };
db.query(table, cols, mSelectionClause, selectionArgs, null, null, null);
(LIKE不区分大小写。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.