Я решил в MySQL Workbench сделать ставку вручную, в таблицу + одно из значений было не совсем int, но это не помешало вставке работать. После этого всё начало работать. Я понимаю, что в этом нет никакой логики, но факт остаётся фактом. Итоговый код выглядит вот так:
def scripts_send_messages_1(update: Update, context: CallbackContext):
chat_id = update.callback_query.from_user['id']
mydb = mysql.connector.connect(
host = 'host ',
user = 'user ',
password = 'password ',
database = 'database ')
dbc = mydb.cursor()
dbc.execute (f'SELECT vk_id FROM user WHERE chat_id={chat_id}')
user_vk_id = dbc.fetchone()[0]
sql = 'INSERT INTO history (thread_type, chat_id, vk_id, method) VALUES (%s, %s, %s, %s)'
val = ('messages_send', chat_id, int(user_vk_id), 0)
dbc.execute(sql, val)
mydb.commit()
bot.send_message (text = 'Отправьте *ссылку на группу* из которой будут использоваться посты:',
chat_id = chat_id,
parse_mode = ParseMode.MARKDOWN)
return REPLY_IDS_GROUP