Хранение байтов в postgresql
у меня есть текст, который приходит от пользователя (в нем могут иметься эмодзи). И нужно как то сохранить в базе данных тот текст, который пришел от пользователя. Думал над тем, чтобы перевести сообщение в кодировку utf-8, и хранить в базе данных, но выдает ошибку. Вот код:
text_code = (message.text).encode('utf-8')
insert_call(f"INSERT INTO catalog (product_name, id) VALUES ({text_code}, {catalog_id});")
update_call("UPDATE users SET admin_panel=%s WHERE chat_id=%s;", (catalog_id, message.chat.id))
Тип колонки id BYTEA
Ошибка:
ERROR: Traceback (most recent call last):
File "c:\Users\jaNeight\Desktop\rutor-shop\automate-shop\telegram.py", line 188, in polling
bot.polling(none_stop=True)
File "C:\Users\jaNeight\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 658, in polling
self.__threaded_polling(non_stop, interval, timeout, long_polling_timeout, allowed_updates)
File "C:\Users\jaNeight\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 720, in __threaded_polling
raise e
File "C:\Users\jaNeight\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 680, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\jaNeight\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\util.py", line 135, in raise_exceptions
raise self.exception_info
File "C:\Users\jaNeight\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\util.py", line 87, in run
task(*args, **kwargs)
File "c:\Users\jaNeight\Desktop\rutor-shop\automate-shop\telegram.py", line 159, in handle_message
insert_call(f"INSERT INTO catalog (product_name, id) VALUES ({text_code}, {catalog_id});")
File "c:\Users\jaNeight\Desktop\rutor-shop\automate-shop\dbase.py", line 28, in insert_call
cursor.execute(call)
File "C:\Users\jaNeight\AppData\Local\Programs\Python\Python310\lib\site-packages\psycopg2\extras.py", line 146, in execute
return super().execute(query, vars)
psycopg2.errors.SyntaxError: syntax error at or near "lDoZnKGDPRyzLSpyMZbhZesCfkxvvEiEDqZkvJdgkeUAxNeSMhoe"
LINE 1: ...roduct_name, id) VALUES (b'\xf0\x9f\x92\x8e', 2966lDoZnKGDPR...
Ответы (1 шт):
Автор решения: ioriSempai
→ Ссылка
Формат колонок VARCHAR, и вместо {text_code}, {catalog_id} -> '{text_code}', '{catalog_id}'