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

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

Linda Hamilton
Linda Hamilton原创
2024-12-03 04:58:09244浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn