SQLite 尝试选择时出现异常,没有这样的列

2023-12-14

我有以下数据库助手类:

public int studentExists(String studid) {
    Cursor dataCount = mDb.rawQuery("select count(*) from usertable where " + KEY_STUDID + "=" + studid, null);
    dataCount.moveToFirst();
    int count = dataCount.getInt(0);
    dataCount.close();
    return count;
}

我在我的应用程序中使用它来查看之前是否输入了学生 ID。

当学生 ID 为整数(346742)时,这工作正常,但每当我尝试添加字母数字 ID(PB3874)时,它都会强制关闭应用程序。

Error:

06-13 18:22:20.554:错误/AndroidRuntime(8088):android.database.sqlite.SQLiteException:没有这样的列:pb3874:,编译时:从用户表中选择count(*),其中studid = pb3874

我不认为这是数据类型问题(因为我使用文本类型):

    private static final String DATABASE_CREATE =
    "create table usertable (_id integer primary key autoincrement, "
    + "studid text not null);";

但我很困惑为什么错误说no such column: pb3874因为我试图简单地从 Studid 列中选择该值。以及为什么这对于任何 int 值都适用。有人有任何解决问题的建议吗?


这里发生的情况是,SQLite 认为“pb3874”实际上是一个列名,而不是字符串/文本文字。

要指定它是文本文字,您需要确保文本值包含在适当的单引号中:

为了防止 SQL 注入攻击,每当您从用户获取输入时,请使用参数化查询:

("select count(*) from usertable where " + KEY_STUDID + "=?", studid);

没有参数化(在接受用户输入时非常不鼓励):

("select count(*) from usertable where " + KEY_STUDID + "='" + studid + "'", null);  

你的数值没有产生这个的原因是:SQLite 为你转换了这些数字文字。

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

SQLite 尝试选择时出现异常,没有这样的列 的相关文章

随机推荐

  • 为 PHP 设置 Apache 时遇到问题

    我对 PHP 非常陌生 我正在尝试设置我的 apache 开发服务器 但遇到了很多麻烦 我安装了 XAMPP 但无法让 apache 正常启动 我读到我可能遇到端口问题 但是我确实将端口从默认值 80 更新为 8080 配置中的 监听 但这
  • 当我执行syncdb时,Django出现UnicodeDecodeError

    我尝试使用 MySQL 设置 Django 但出现 UnicodeDecodeError 您能让我知道如何解决这个问题吗 我搜索了有关错误的信息 但我无法理解 我找到了这些代码并尝试了 def unicode self return str
  • 在两台笔记本电脑上使用 git,没有裸仓库

    我已经在我的第一台笔记本电脑上开始了项目 git init 然后开始工作 明天我要去度假 我想随身携带我的小型笔记本电脑 并时不时地参与项目 我通过 ssh 从更大的笔记本电脑克隆存储库 git clone ssh address 当我回来
  • 从 CGPoint 获取 SCNVector3

    我正在尝试从 CGPoint 获取 SCNVector3 我正在使用手势识别器来获取触摸的位置 作为 CGPoint 问题是 当我进行测试时 触摸并不总是会击中某些东西 因为并不总是有物体被触摸 触摸一个空的地方 将你的船移动到那个空的地方
  • 解析逗号分隔的字符串,其中一些子字符串用双引号引起来

    尝试解析所有数据都用双引号括起来的 csv 文件 因为双引号中可能有逗号 看起来像这样 songs 1 2 3 4 I Love You Plain White T s CBE10 22 15 CBE10 22 CB 984 10 05 1
  • 如何避免手动将 $registry 容器传递到我创建的每个新类的构造函数中?

    我一直在做MVC几个月来 我把所有东西都储存在我的 注册表目的 当我创建一个新类时 我通常只传递注册表 但我必须不断地传递 this gt registry创建新类时 e g class something public function
  • Typescript 重载箭头函数

    所以我们可以这样做 export function myMethod param number number export function myMethod param string string export function myMe
  • 从 Spyder 关闭远程内核

    我在集群上使用远程内核 并使用 Spyder 连接到该集群 为此 我在集群上启动我的内核python m spyder kernels console 然后 我将在 jupyter 运行时目录中创建的 json 文件复制传输到本地计算机 然
  • Android - NDK 共享库使用 nm / objdump 提取相关 JNI 挂钩

    我正在尝试从包含 JNI 粘合代码的共享库中提取相关符号 但 nm 似乎没有足够的帮助 方法签名不存在 所以我不知道要传递哪些参数 有任何想法吗 bash 3 2 arm linux androideabi nm D Desktop bac
  • 是否有一个 SQL 函数可以生成给定范围的序列号?

    我需要生成一个具有给定范围的连续整数数组 以便将其用于 SELECT tbl pk id FROM tbl WHERE tbl pk id NOT IN sequential array 如果您有给定的连续整数范围 即起点和终点 您应该能够
  • 使用 dplyr 对分组数据进行 cumsum

    我有一个数据框df 可以下载here 指的是看起来像这样的公司登记册 Provider ID Local Authority month year entry exit total 1 1 102642676 Warwickshire 10
  • 是否可以在一页中多次运行一个 Angular 2 应用程序?

    我正在从 asp net web 表单迁移到 Angular 4 我正在一步一步地进行 更换一个零件并将其投入生产 我在页面中多次加载相同的 Angular 应用程序时遇到问题 例如用代码
  • 删除奇怪的字体编码

    您好 我希望这是一个简单的问题 我正在通过 API 加载一些简单的数据 但是有些用户已经将其用户名设置为如下所示的精美字体 如何使用 PHP 将其转换为简单的标准编码 以便它显示为 Web Reposts 谢谢
  • 无法从 python os.path.abspath 获取有效的路径名

    我有以下包含文件绝对目录的字符串 D Sample Project testXcl data xlsx 将其传递到 os path abspath 时 我得到以下结果 D Sample Project testXcl data xlsx 发
  • Firebase 项目 URL 出现错误:添加 www 会导致“您的连接不是私有的”

    我有一个 firebase 项目 除非我使用以下命令输入我的项目的 url 否则该项目可以正确加载www 在前 这有效 https myproject firebaseapp com 这会返回一个错误 https www myproject
  • 根据条件创建新的 numpy 数组

    我有 2 个 numpy 数组 aa np random rand 5 5 bb np random rand 5 5 当aa和bb都超过0 5时 如何创建一个值为1的新数组 由于关注性能并使用两种方法 因此可以添加一些方法 一种方法是获取
  • 无法导入pygame

    我已经在我的 Mac 上安装了 pygames 使用 pygame org 站点上找到的以下软件包中的安装程序 pygame 1 9 1release python org 32bit py2 7 macosx10 3 dmg 我已经使用
  • 访问 asp.虚拟机外部的.net开发服务器

    伙计们 我已经用头撞桌子 而不是电脑 好几个小时了 我在并行虚拟机中运行 VS 2008 如果使用本地主机 我可以访问虚拟机中的开发服务器 如果我使用虚拟机的指定IP或尝试从外部访问它 则不起作用 所有防火墙均已关闭 并且我验证可以从外部访
  • 如何在uiimage中绘制文本?

    我想设置我的文字Sold Out到 UIimage 的中心 但它不在中心 func textToImage drawText text NSString inImage image UIImage atPoint point CGPoint
  • SQLite 尝试选择时出现异常,没有这样的列

    我有以下数据库助手类 public int studentExists String studid Cursor dataCount mDb rawQuery select count from usertable where KEY ST