为什么在执行insert查询时出错

2024-05-18 19:01:17 发布

您现在位置: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语句中未使用所有参数


Tags: 代码nameconnectormysqlsurnameval1mydbval2
1条回答
网友
1楼 · 发布于 2024-05-18 19:01:17

您将变量名作为字符串传递,而不是变量名本身。此外,使用的参数标记必须全部为%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()

相关问题 更多 >

    热门问题