MySQL не принимает строки даты и времени через python - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь написать простой класс для базы данных, к которому можно получить доступ как к 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Помощь будет принята с благодарностью!

...