SQLite 参数替换和引号

2024-04-04

我有这条线工作正常:

c.execute('select cleanseq from cleanseqs WHERE newID="%s"'%name)

但我想使用 SQLite 参数替换而不是字符串替换(因为我看到here http://docs.python.org/library/sqlite3.html这更安全)。

这是我的(失败的)尝试:

t = (name,)
c.execute('select cleanseq from cleanseqs WHERE newID="?"',t)

但这行返回:

'绑定数量不正确 提供。当前语句使用 0,并且提供了 1 个。

所以我的声明的左边部分不起作用。我提供了一个绑定(名称,以 t 表示),但似乎问号 (?) 没有被解析。如果我删除 ? 周围的引号,它就会起作用。但我希望这些引号保留在那里,因为我记得在某些情况下我需要它们。

所以问题是:如何转换这一行:

c.execute('select cleanseq from cleanseqs WHERE newID="%s"'%name)

对于像我这样的人发现了这个帖子,并且因为人们忽略了这样一个事实而感到非常沮丧:有时你不能忽略引号(因为你使用的是 LIKE 命令),你可以通过执行以下操作来解决此问题:

var = name + "%"
c.execute('SELECT foo FROM bar WHERE name LIKE ?',(var,))

这将允许您在这种情况下替换通配符。

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

SQLite 参数替换和引号 的相关文章

随机推荐

  • Angular.js - 使用间隔应用过滤器

    我正在对日期时间对象使用自定义 angular js 过滤器 function relativeTimeFilter return function dateObj return getRelativeDateTimeString date
  • 与 SVN 上游同步工作[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发一个使用开源项目代码的项目 要求之一是将尽可能多的代码推回到上游 远程项目正在使用 Subversion 不是很好 我当前的
  • 为什么我不能转换 ref 参数?

    我有一个带有 ref 控件类型参数的方法 我想通过传递 ref 按钮类型参数来调用该方法 那么编译器不接受这一点 我必须将引用控件类型更改为引用按钮类型 Why 因为这会带来很多问题 public void DoDarkMagic ref
  • 克隆 MongoDB 中的集合

    我想克隆 MongoDB 集合并将其以不同的名称保存在同一服务器上 例如 现在我有以下集合 demo1 categories demo1 users 和 demo2 users 我想要一个与 demo1 categories 相同的 dem
  • 如何转义双引号作为 NUnit TestCase 的参数?

    我尝试为用 VB net 编写的 NUnit 测试编写以下 TestCase
  • 如何将同义词词典添加到mysql全文搜索?

    这样 如果我搜索术语 男士 术语 绅士 就会匹配 我试过这个 SELECT FROM cart product WHERE MATCH product name product description product brand metal
  • AppSync BatchResolver AssumeRole 错误

    我正在尝试使用新的 DynamoDB BatchResolvers 写入 AppSync 解析器中的两个 DynamoDB 表 当前使用 Lambda 函数来执行此操作 但是 在查看 CloudWatch 日志时 我收到以下权限错误 Use
  • Patindex() 函数的用法

    我在用patindex用于 MD 或 DO 的模式搜索 下面的语句返回3 我是否以错误的方式使用它 或者是否有其他检查条件的方法 select PATINDEX MD DO FHoisegh MD select T Value from v
  • angular2 – 通过自定义管道使用全局服务

    我正在玩一点 Angular 2 到目前为止 我构建了一个拥有接口的全局服务 其他组件正在使用这个全局服务的接口 如果通过组件更改界面 则子组件的界面也会更改 现在我正在尝试通过管道来处理这个问题 但是 当我通过子组件更改接口值时 其他组件
  • QSerialPort可以读取超过512字节的数据吗?

    我想使用 QSerialPort 读取从设备传输的数据 设备每次发送一帧4000个数据字节 我尝试使用以下简单的代码 QSerialPort serialPort char receivedData 4000 int numRead 0 M
  • 将响应结果作为数组而不是 Web 服务中的对象获取

    有一个 php 应用程序将从我创建的 Web 服务中读取结果 他们想要的 xml 响应就像
  • 如何在非阻塞套接字上处理 OpenSSL SSL_ERROR_WANT_READ / WANT_WRITE

    OpenSSL 库允许使用 SSL read 从底层套接字读取数据并使用 SSL write 写入数据 这些函数可能会返回 SSL ERROR WANT READ 或 SSL ERROR WANT WRITE 具体取决于它们的 ssl 协议
  • 我在设置 Windows 服务时遇到问题

    我正在尝试设置 Windows 服务 但是当我构建设置时 输出是这样的 Build started Project TwitterService Configuration Debug Any CPU TwitterService gt C
  • 使用 myBatis 从数据库中以 byte[] 的形式获取 blob

    我在一个项目中使用 spring MyBatis 1 2 0 其中有一个查询从 Oracle 11g 数据库中的 BLOB 字段获取数据 我想以字节数组 byte 的形式检索该字段 我的代码是
  • 平均执行时间

    有没有什么好的 GNU 方法来测量某些命令行程序的平均 最坏情况 最好情况 执行时间 我有图像过滤器 未指定数量的图片 使用 bash 中的 for 循环过滤它们 到目前为止我正在使用time 但我找不到如何获取一些统计数据的方法 您可以将
  • 将 XYZ 点云转换为灰度图像

    每个人 我正在尝试使用 python 将点云 X Y Z 转换为灰度图像 我了解到灰度图像可以由 Numpy 数组生成 但我现在拥有的是一组包含 X Y 和高度的点 我想根据 X Y 和灰度值 即高度 生成灰度图像 有人能给我一个关于这个的
  • 我的驱动程序模块的内核输出奇怪的 dmesg

    从我之前的问题为什么模块加载失败 dev scull0 没有这样的设备或地址 https stackoverflow com questions 62019834 why does module failed to load dev scu
  • Flask:为什么 app.route() 装饰器应该总是在最外面?

    说吧 我有一个手工制作的 login required装饰器 from functools import wraps def login required decorated function Decorator to check if u
  • 在 Windows 中将 Boost 与 CMake 和 Visual Studio 链接的正确方法是什么?

    我正在尝试为 Visual Studio 2012 生成一些我需要的 Boost 1 58 库 chrono 正则表达式和线程 并将这些库与 CMake 链接 我在 CMake 和 Visual Studio 查找或链接库时遇到了真正的问题
  • SQLite 参数替换和引号

    我有这条线工作正常 c execute select cleanseq from cleanseqs WHERE newID s name 但我想使用 SQLite 参数替换而不是字符串替换 因为我看到here http docs pyth