почему я получаю ошибку при выполнении запроса вставки - PullRequest
0 голосов
/ 12 апреля 2020

При выполнении следующего кода я получаю сообщение об ошибке

код:

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

1 Ответ

1 голос
/ 12 апреля 2020

Вы передаете имена переменных в виде строк, а не сами имена переменных. Кроме того, все используемые маркеры параметров должны быть% 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 () для получения дополнительной информации о параметризации вашего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...