python - 为什么执行插入查询时出现错误
问题描述
在执行以下代码时,我收到错误
代码:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="root",
database="proteinsystem"
)
mycursor = mydb.cursor()
name = "test",
surname = "tester",
val1 = 0,
val2 = 0,
val3 = 332,
val4 = 62,
val5 = 181,
val6 = 0,
val7 = 125,
val8 = 490,
mycursor.execute('INSERT INTO ppi2 (name, surname, val1, val2, val3, val4, val5, val6, val7, val8) VALUES (%s,%s,%d,%d,%d,%d,%d,%d,%d,%d)', ('name', 'surname', 'val1', 'val2', 'val3', 'val4', 'val5', 'val6', 'val7', 'val8'))
mydb.commit()
print(mycursor.rowcount, "record inserted.")
错误:
cursor.py”,第 561 行,在执行“SQL 语句中没有使用所有参数”)mysql.connector.errors.ProgrammingError:SQL 语句中没有使用所有参数
解决方案
您将变量名作为字符串而不是变量名本身传递。此外,使用的参数标记必须都是 %s。
mycursor.execute(
('INSERT INTO ppi2 (name, surname, val1, val2, val3, val4, val5, val6, val7, val8)',
'VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)'),
(name, surname, val1, val2, val3, val4, val5, val6, val7, val8)
)
您可以参考MySQLCursor.execute()以获取有关如何参数化查询的更多信息。
推荐阅读
- spring - 如何访问默认的 spring 错误 JSON
- angular - Ionic 4 加载符号在 observable 解析之前消失
- python - 是否可以创建一个 Altair 绑定到 datalist 元素而不是 select?
- python - Python Chromedriver 结束任务烦人的闪烁
- python - Pyspark:将列分解为新的数据框
- sql - ORA-00937 使用 CASE 条件时不是单组组函数
- react-native - 将侦听器添加到 Diff Clamp,React Native
- chainer - Chainer:基于时间限制提前停止的自定义扩展
- c# - 如何接口 IGrouping
产生多个值? - python - 使用 ctypes 在 python 中调用 C++ 函数