【问题标题】:Syntax error while passing Sql Query to Android [duplicate]将 Sql Query 传递给 Android 时出现语法错误 [重复]
【发布时间】:2016-09-23 12:00:35
【问题描述】:

我正在尝试像

这样执行查询
Select  * From Table_name where English=' + word + "'"

我得到的错误是

09-23 07:41:21.995: E/AndroidRuntime(4693): android.database.sqlite.SQLiteException: near "AM": syntax error (code 1): , while compiling: Select  * From Table_Name where English='MA'AM'

我参考了链接android.database.sqlite.SQLiteException: near "...": syntax error (code 1),但这也给了我类似的错误

09-23 08:27:08.710: E/AndroidRuntime(5581): android.database.sqlite.SQLiteException: near "MA": syntax error (code 1): , while compiling: Select  * From Tabel_Name where English=?MA'AM

所以我的问题是我怎样才能用 MA'AM 这样的词来传递这个查询。

PS:其他没有 ' 的词都可以正常工作,因此任何其他代码都没有问题,只需查询产生问题的代码即可。

提前致谢。

【问题讨论】:

  • 了解准备好的语句
  • @Jens,我是 android 开发人员,所以我对 SQL 了解不多,但如果你能提供任何 URL 或示例,可以更好地理解场景......
  • 你说的是哪个数据库?
  • @laalto,如果我使用该问题中的查询,我会收到错误消息......所以请不要将此问题标记为重复......这是不同的场景......
  • 同理:SQL 字符串文字中的' 是个问题,最好的解决方案是使用? 变量并绑定值。

标签: android sql sqlite select


【解决方案1】:

你一定要这样写

English='MA''AM'

【讨论】:

  • 那么如果单词只有像 MAM 这样的字符串,我的意思是没有任何 ' 的单词,这个查询是否也适用于这些单词..
  • 动态地你必须替换它'MA''AM'
  • 你能告诉我如何触发查询来获取所有包含 ' 的单词,这对你来说会很有帮助。
  • SELECT * FROM TableName WHERE FieldName LIKE '%''%'
  • 这将为您获取所有包含 ' 的记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 2020-08-01
相关资源
最近更新 更多