Ну, я думаю, что-то не так с разъемом mariadb ...
У меня есть строка таблицы, которая выглядит так:
| я бы | заглавие | категория | Дата Отправки | Дата возвращения | содержание | файл | ID пользователя |
|---|---|---|---|---|---|---|---|
| 6 | тест 7 | 10 | 2021-04-01 21:50:21 | содержание 7 | соломкаf9cdaf.txt | 16 |
Проблема в том, что у меня есть поле DATETIME, которое имеет значение NULL (дата date_due не является обязательной в моем приложении)
Похоже, что после передачи значений методу execute () метод fetchall () анализирует возвращенные данные по-другому.
Первый случай отлично работает Второй возвращает "ValueError: год 0 выходит за пределы допустимого диапазона".
id=("6",)
statement1 = "select * from posts where id = 6"
statement2 = "select * from posts where id = ?"
db.cursor.execute(statement1)
result = db.cursor.fetchall()
for x in result:
print(x)
db.cursor.execute(statement2, id)
result = db.cursor.fetchall()
for x in result:
print(x)
Пытался перечислить () коннектор - результат тот же
Я попытался изменить значения и атрибуты столбца таблицы - результат тот же
Я подумал, что это проблема версий, поэтому я обновился до последней версии python, сервера mariadb и соединителя python (на ubuntu 20.04) - тот же результат
Результат:
6, 'test 7', 10, datetime.datetime(2021, 4, 1, 21, 50, 21), None, 'content 7', 'strawsf9cdaf.txt', 16)
ValueError: year 0 is out of range
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/project dir/main_test3.py", line 38, in <module>
result = db.cursor.fetchall()
SystemError: <method 'fetchall' of 'mariadb.connection.cursor' objects> returned a result with an error set
Process finished with exit code 1
Любая помощь будет оценена
как мне сообщить об этом? не лучше ли просто переключиться на соединитель mysql: D Я почесал голову над этим несколько дней уже 0.o
На странице mariadb.com есть страница «Связаться с нами».






Это была ошибка в MariaDB Connector / Python, которую я недавно исправил. Исправление будет доступно в следующей версии (1.0.7).
Дата «0000-00-00» недействительна в Python и поэтому должна быть преобразована в None.
Спасибо за ваш отчет.
Мне это определенно кажется ошибкой с разъемом.