Python: Какой инструмент для работы с БД выбрать

Только начинаю изучать python, возникли проблемы с базами данных. Сначала выбрала pymysql, все шло хорошо. Сейчас решила переписать все запросы к БД через подготовленные операторы, чтобы везде где нужно кавычки проставились / экранировались (ну и + безопасность).

Мои запросы сейчас:

sql = "UPDATE myTable SET {q} = {answ} WHERE userid = {id};".format(id=userId, q=q, answ=answ)
cur.execute(sql)

Хочу сделать так:

cur.execute("UPDATE myTable SET %s = %s WHERE userid = %s", (q, answ, userId))

но оказалось, что pymysql не поддерживает prepared statements (вычитала тут: https://stackoverflow.com/questions/38671286/does-pymysql-support-prepared-statements), и код вызывает ошибку:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "'q1' = 0 WHERE userid = 0" at line 1

Так же, хочу заметить, что в качестве answ может передаваться и число и строка. userId - число длиной до 20 символов, поэтому я сделала его varchar

В поисках информации нашла, что можно вместо pymysql использовать mysql.connector, но он вроде устарел (?) Есть еще MySQLdb, там должен работать такой код.

Посоветуйте, пожалуйста, что лучше выбрать. Пишу бота для телеграм, кроме работы с БД толком ничего не понадобиться.

Может вообще есть смысл сменить MySql на что-то другое? (правда я уже столько времени на установку настройку потратила, что не очень хочется:) )

UPD: Обновила пост с учетом комментариев


Ответы (0 шт):