Как я могу получить и сохранить значения в MySQL из аргумента функции в Python - PullRequest
0 голосов
/ 10 января 2019
def insert(title,author,year,isbn):
    con= mysql.connector.connect(host="localhost",user="root",passwd="junai2104",database="book")
    cur=con.cursor()
    cur.execute("INSERT INTO book(title,author,year,isbn)VALUES ('$title','$author',%d,%d)")
    con.commit()
    con.close()
insert('test2','test2',1234,13525545)

И я получил сообщение об ошибке, подобное этому

mysql.connector.errors.ProgrammingError: 1064 (42000): в синтаксисе SQL имеется ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с "% d,% d)" в строке 1

как я могу вставить значения с помощью функции

Ответы [ 2 ]

0 голосов
/ 10 января 2019
def insert(title, author, year, isbn):
    con = mysql.connector.connect(host="localhost", user="root", passwd="junai2104", database="book")
    cur = con.cursor()
    sql_statement = "INSERT INTO book(title,author,year,isbn) VALUES ( '{}' , '{}', {}, {} )".format(str(title), str(author), year, isbn)
    cur.execute(sql_statement)
    con.commit()
    con.close()
insert('test1','test2',1234,13525545)
0 голосов
/ 10 января 2019

Вы можете попробовать это один раз:

def insert(title,author,year,isbn):
    con= mysql.connector.connect(host="localhost",user="root",passwd="junai2104",database="book")
    cur=con.cursor()
    sql_statement='INSERT INTO book(title,author,year,isbn) VALUES ('
    sql_statement = sql_statement + "'" + title + "','" + author + "'," + year + "," + isbn + ")"
    cur.execute(sql_statement)
    con.commit()
    con.close()
insert('test2','test2',1234,13525545)
...