首页 > 后端开发 > Python教程 > 为什么我的参数化 MySQL 查询会抛出'类型错误:字符串格式化期间未转换所有参数”?

为什么我的参数化 MySQL 查询会抛出'类型错误:字符串格式化期间未转换所有参数”?

Linda Hamilton
发布: 2024-12-03 04:58:09
原创
292 人浏览过

Why Does My Parameterized MySQL Query Throw a

参数化 SQL 查询:导航“TypeError:并非所有参数在字符串格式化期间都已转换”

在 MySQLdb 中,执行参数化 SQL 查询可能会导致“类型错误:并非所有参数在字符串格式化期间都已转换。”当查询需要特定数量的参数,但提供的参数与期望不匹配时,就会出现此错误。

要纠正此错误,请用更现代的方法替换旧语法。而不是使用:

cur.execute("SELECT * FROM records WHERE email LIKE '%s'", search)
登录后复制

使用以下语法:

cur.execute("SELECT * FROM records WHERE email LIKE %s", [search])
登录后复制

execute() 中的第二个参数现在是包含要转换的参数的列表。此列表中的每个参数都必须可转换为查询中预期的数据类型。在这种情况下,查询需要一个字符串,因此搜索需要包含在一个单元素列表中。

以上是为什么我的参数化 MySQL 查询会抛出'类型错误:字符串格式化期间未转换所有参数”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板