android.database.sqlite.SQLiteException:靠近“...”:语法错误(代码1)

2023-11-29

当我打开我的RSS应用程序时,我想检查我的数据库中是否存在一篇文章。如果存在,我想删除它(或忽略它),如果不将其写入数据库。

我一直在尝试这样做:

            Cursor cursor = ourDatabase.rawQuery("select 1 from "
                    + DBHelper.DATABASE_TABLE + " where " + DBHelper.TITLE + "='"
                    + title + "'" + " AND " + DBHelper.DATE + "='" + date + "'",
                    new String[] {});
            if (cursor.moveToFirst()) {
                boolean exists = (cursor.getCount() > 0);
                cursor.close();
                return exists;
            } else {
    return false;       }

        }

但我收到此错误:

06-06 16:01:11.341: E/AndroidRuntime(13867): Caused by: android.database.sqlite.SQLiteException: near "όσο": syntax error (code 1): , while compiling: select 1 from all_t where title='Ο ΦΟΒΟΣ και ο ΤΡΟΜΟΣ των διαδηλωτών!!! Αυτές οι γυναίκες είναι πιο σκληρές απ' όσο δείχνουν!' AND date='Wed, 05 Jun 2013 18:12:15'

这是不使用selectionArgs,这正是人们应该使用它们的原因:您正在用简单的引号引用您的字符串,但您的字符串包含单引号,因此 SQLite 在字符串实际结束之前检测到字符串的结尾,并尝试将其余部分解析为 SQLite 关键字。

正确的解决方案是将转义留给 SQLite,通过使用那些selectionArgs而不是试图逃避自己。在你的情况下,那就是:

Cursor cursor = ourDatabase.rawQuery("select 1 from "
            + DBHelper.DATABASE_TABLE + " where " + DBHelper.TITLE + "=?"
            + " AND " + DBHelper.DATE + "=?",
            new String[] {title, date});

另外,它更干净,因为您可以从查询中创建一个常量,而不是每次都构造它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android.database.sqlite.SQLiteException:靠近“...”:语法错误(代码1) 的相关文章

  • 如何为不同的gradle buildTypes提供不同的Android应用程序图标?

    我的 gradle 文件中设置了两种构建类型 debug and release 我希望能够为debug构建类型 有没有办法只通过构建类型来实现这一点 而无需考虑产品风格 build gradle 文件如下 apply plugin and
  • 如何在Android中访问Sqlite数据库?

    我可以在模拟器中使用 adb shell 命令访问我的 sqlite 数据库 但无法对我的 HTC Desire 手机执行相同操作 它会抛出一些权限被拒绝的消息 是否有可能访问这些数据库以进行调试 任何想法 提前致谢 您还可以在命令提示符
  • ALBUM_ART列从API 29等开始被弃用,如何获取路径?

    我们目前正在使用以下方式获取专辑封面的路径 MediaStore Audio AlbumColumns ALBUM ART 并且正在成功获取路径 但 Pixel 3a Android 10 除外 经过一番研究 API 29 及以上版本已弃用
  • 如何在android中播放来自URL的流媒体视频?

    我想在 android 中播放网站上的流媒体视频 例如 我想播放来自以下网址的流视频 http florotv com canal2 html http florotv com canal2 html 使用 URL Helper 我已经能够
  • 尝试在空对象引用上调用接口方法“...”

    我正在开发一个具有蓝牙功能的应用程序 我使用片段来扫描并列出蓝牙设备 单击时 会回调提供所选蓝牙设备的主要活动 我从使用 Android 6 API 23 的智能手机开始 然后必须调整代码以用于 Android 5 0 API 21 我刚刚
  • Android 应用程序用户尝试更新时收到“应用程序未安装”消息

    UPDATE 对于那些询问用户收到哪些错误代码的人 没有错误代码 它只是打开一个空白的安装后页面 上面写着 该应用程序未安装 旁边有一个大 X 不同版本的 Android 可能有不同的消息 没有任何迹象表明安装过程中出了什么问题 更新2 一
  • Android MediaPlayer 问题:“错误 (-38 , 0) ”和“在状态 1 下停止调用”

    我的设备甚至模拟器都没有声音 其实在一线 mediaPlayer create this musicIds 0 eclipse 建议我两个选择 使用 MediaPlayer 声明类型 更改对静态的访问 或 在 Create 上添加 Supp
  • 在 Android 上以编程方式输入 *#*#4636#*#* 等密码

    在许多 Android 设备上 您可以通过键入以下内容从 电话 应用程序进入秘密设置菜单 4636 http technology headlines com 2010 09 17 4636 android secret codes htt
  • 如何创建像Foursquare兴趣选择屏幕一样的gridview?

    我正在创建一个应用程序 要求用户选择多个兴趣 我正在尝试创建一个类似于 Foursquare 兴趣选择的屏幕类似于标签云其中可以选择多个按钮来代表用户的兴趣 我尝试创建一个 gridview 但无法实现按钮换行到下一行的效果 有没有办法通过
  • 无法分派 DDM 块 46454154:未定义处理程序 - Eclipse - Android SDK

    我正在 Windows 7 64 位机器上工作 刚刚下载并安装了 Android SDK 并且正在使用带有 Android 插件的 Eclipse 我刚刚浏览了 Hello Android 指南 你好 安卓 http developer a
  • 从视频文件中提取音频的问题(android)

    我需要将 mp4 或任何其他视频格式 转换为 mp3 或 wav 文件 我正在使用 C Xamarin Forms 我使用的任何库要么不适合我 要么与 android 不兼容 我尝试过使用 Xamarin Android FFMpeg 和
  • 将mapView缩放到osmdroid上的某个边界框

    我想使用 ZoomToBoundingBox 方法将地图缩放到特定的边界框 该方法除了以缩放级别 0 显示地图外什么也不做 在mapView java源代码中我发现了这个 缩放地图以尽可能靠近地包围指定的边界框 必须在显示布局完成后调用 否
  • 设置画廊间距的任何值都会禁用 onKeyEvent

    当用户单击左侧或右侧按钮时 我试图使图库以动画向左或向右滚动 如果我使用下面的代码调用 keyevent 来滚动图库 效果会很好 gallery onKeyDown KeyEvent KEYCODE DPAD LEFT new KeyEve
  • 问题:将大数据传递给第二个 Activity

    我有一个奇怪的问题 我在网上浏览但没有找到答案 我仍然是android编程的初学者 那么让我们开始吧 我想做的就是用一些数据调用第二个活动 它适用于小数据 但如果数据变大 第二个 Activity 将不会显示 第一个 Activity 将完
  • 画廊新媒体如何播放?

    我试图收到有关添加到手机图库的新图片或视频的通知 我需要获取新媒体的 URI 目的是让我可以自动备份它 因此 我需要一个在后台设置的寄存器来连续侦听或检查添加到图库的新媒体 并捕获 Uri 这过去是通过广播接收器完成的 例如
  • android项目中视频文件放在哪里

    我有一个视频 我需要知道放置在哪里以及如何获取该视频的路径 我知道如何从 URL 添加视频 Uri uri Uri parse www abc com myVid mp4 videoView VideoView findViewById R
  • Android Studio - 程序类型已存在:com.google.android.gms.internal.measurement.zzwp

    昨天 我的应用程序运行良好 今天 不知道为什么 重新打开Android Studio后 应用程序就无法编译了 显示的错误是 Program type already present com google android gms intern
  • 在 libgdx 中截取屏幕截图

    我有一个应用程序 我想在其中截取游戏屏幕的屏幕截图并将其保存为图像并上传到 Facebook 我正在使用 Libgdx 我的重点是 android 谁能帮助我如何以编程方式截取游戏屏幕并将其另存为图像 现在相当容易 Libgdx提供了一个例
  • Android Google plus 注销按钮看起来与 Google 教程文档中的登录按钮不同

    我正在按照 Google 开发人员网站中提到的步骤在我的应用程序中实现登录和注销 如前所述 添加登录和退出按钮的代码是
  • 将文本文件写入 SD 卡失败

    我遇到了一个奇怪的问题 我的应用程序可以将一个简单的文本文件写入 SD 卡 有时它对某些人有效 但对其他人无效 我不知道为什么 对于某些人来说 如果他们输入一些字符 例如 在文件等中 我似乎无法重现它 因为我没有遇到任何麻烦 但这是处理文件

随机推荐