Я пытаюсь написать простой класс для базы данных, к которому можно получить доступ как к API из любой другой программы на Python.Предполагается, что функция вставляет новую строку в таблицу с помощью следующей команды (которая работает в командной строке mysql):
INSERT INTO Tweethistory (LastUsed) VALUES ('2018-12-01 12:12:12');
Код Python для запуска такой же, выглядит следующим образом:
def add_user(self, time):
self.cursor.execute("""
INSERT INTO Tweethistory (LastUsed)
VALUES (%s)
""", (time))
self.db.commit()
return int(self.cursor.lastrowid)
Функция вызывается из другой программы, которая имеет следующий код:
db = MyDatabase()
time = strftime("%Y-%m-%d %H:%M:%S", gmtime())
ID = db.add_user(time)
db.close_connection() #Function to disconnect database
Когда я запускаю программу, я сталкиваюсь со следующей ошибкой:
File "/home/ece-student/Documents/601/MiniProject1/Database.py", line 28, in add_user
""", (time))
File "/home/ece-student/anaconda3/lib/python3.6/site-packages/mysql/connector/cursor_cext.py", line 248, in execute
prepared = self._cnx.prepare_for_mysql(params)
File "/home/ece-student/anaconda3/lib/python3.6/site-packages/mysql/connector/connection_cext.py", line 535, in prepare_for_mysql
raise ValueError("Could not process parameters")
ValueError: Could not process parameters
Я перепробовал все, от использования переменной 'query' для хранения строки и вызова cursor.execute(query, [time])
и использования одинарных кавычек для обозначения сильных значений как '% s', но, похоже, ничего не работает.
AnyПомощь будет принята с благодарностью!