【问题标题】:why am I getting error when executing insert query为什么执行插入查询时出现错误
【发布时间】:2020-04-12 14:18:49
【问题描述】:

在执行以下代码时出现错误

代码:

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 语句中没有使用所有参数

【问题讨论】:

标签: python mysql


【解决方案1】:

您将变量名作为字符串而不是变量名本身传递。此外,使用的参数标记必须都是 %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(),了解有关如何参数化查询的更多信息。

【讨论】:

  • 来自我提供给你的链接:Specify variables using %s or %(name)s parameter style
猜你喜欢
  • 2015-07-18
  • 1970-01-01
  • 2016-11-11
  • 1970-01-01
  • 2012-02-22
  • 1970-01-01
  • 2021-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多