sql = "INSERT INTO daftar_film (` judul_film`) VALUES (% s) " - PullRequest
0 голосов
/ 19 января 2020

Ошибка при подключении к MySQL 1064 (42000):

В синтаксисе SQL произошла ошибка; проверьте руководство, соответствующее вашей версии сервера MariaDB, для правильного синтаксиса для использования рядом с "% s)" в строке 1 мой код

db = mysql.connector.connect(host="localhost",user="root",passwd="",database="db_bioskop")

    if db.is_connected():
        print("Berhasil terhubung ke database")
    else:
        print("eror")

    cursor = db.cursor()
    sql = "INSERT INTO daftar_film (`judul_film`) VALUES (%s)"
    val = (str(var_films2.get()))
    cursor.execute(sql, val)

    db.commit()
    print("{} data ditambahkan")

1 Ответ

1 голос
/ 19 января 2020

Вам необходимы следующие изменения:

sql = "INSERT INTO daftar_film (`judul_film`) VALUES (%s)"
cursor.execute(sql, (val,))

Каждый параметр в вашем подготовленном выражении представлен %s, а фактические значения передаются в вызове execute как tuple или list как второй параметр. Обратите внимание, что в приведенном выше вызове фактический кортеж указан как (val,). Эта запятая важна; без запятой это будет считаться выражением в скобках.

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