@alwaystried

Почему код выдает ошибку?

Добрый день! Почему код выдает ошибку, ссылаясь на аргументирование?

Код следующий:

install = "INSERT INTO setup(time, date, vip_price, stand_price, location), VALUES %s, %s, %s, %s, %s"
        await cur.execute(install, time, date, adress, vip, stand)


Ошибка следующая:

await cur.execute(install, time, date, adress, vip, stand)
TypeError: Cursor.execute() takes from 2 to 3 positional arguments but 7 were given


Но даже если я разделю на несколько запросов, то:

install1 = "INSERT INTO setup(time), VALUES %s"
        await cur.execute(install1, time)


То выходит ошибка:

pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ', VALUES '14'' at line 1")


Заранее спасибо!
  • Вопрос задан
  • 91 просмотр
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что метод execute не принимает столько параметров, сколько вы ему передаёте. И в sql-запросе у вас ошибка.
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
Передаваемые значения для execute() должны быть завёрнуты в кортеж, т.е.
execute('INSERT INTO foo VALUES (%s, %s)', ('bar', 'baz'))

Ну и да, проверь синтаксис SQL-запроса.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы