java - android 上的 sqlite 中的单引号问题。需要在不替换引号的情况下解决
问题描述
Cursor cursor = database.rawQuery
("SELECT * FROM table where word like '?%'".replace("?",
letter),null);
letter
当字符串应用程序崩溃中存在单引号时。需要解决,letter.replace(" ' ", " ")
因为表中有带引号的单词。
解决方案
您错误地使用了语句 API。您应该绑定要在实际查询中出现的文字字符串值。也就是说,这样做:
String param = letter + "%";
String query = "SELECT * FROM table WHERE word LIKE ?";
Cursor cursor = database.rawQuery(query, new String[] { param });
API 有责任正确转义LIKE
您尝试构建的表达式。
推荐阅读
- javascript - 如何从数组中删除所有元素但按值保留特定元素
- node.js - firebase.json 重写 nodejs/vuejs firebase 托管的问题?
- javascript - 选择特定区域中存在的所有 HTML 元素的最优化方法是什么?
- python - 为什么以下部分代码的输出不同?
- amazon-dynamodb - 在我的自定义 ask-sdk webhook 中使用 Dynamo DB 客户端
- java - 如何检查网页元素是否在左上角
- c++ - 如何在不破坏封装的情况下对 std::vector 成员使用移动语义?
- c# - 动态更改 connString
- javascript - 修改这些简单的加载点
- python - 在 Python 脚本中设置 mayaVI 管道属性