#python #arrays #postgresql #append #bytea
Вопрос:
У меня есть база данных таблиц учетных записей, в которой хранятся имя пользователя, адрес электронной почты, пароль и изображения[]. И что я хочу сделать, чтобы каждый раз, когда они делятся картинкой, байты изображений должны добавляться в тип изображений bytea[]. Я использовал несколько методов, но всегда заканчивался ошибкой. Каково решение?
bytea = []
my_cursor = mydb.cursor()
with open(os.path.join('image\Image.png'), 'rb') as file:
image = file.read()
#bytea.append(image)
insert_info = f"SELECT array_append(images, {image}) WHERE id = 7"
my_cursor.execute(insert_info)
mydb.commit()
Ошибка
psycopg2.errors.SyntaxError: syntax error at or near "("
LINE 1: SELECT account array_append(images, b'x89PNGrnx1anx00...
Комментарии:
1. Вы
SELECT
инг неINSERT
инг илиUPDATE
инг; Это > > > > > > > > >insert_info = f"SELECT array_append(images, {image}) WHERE id = 7"
должно быть это >>>>>> >insert_info = f"UPDATE array_append(images, {image}) WHERE id = 7"
2. Это поражает меня ошибкой
psycopg2.errors.SyntaxError: syntax error at or near "("
Ответ №1:
вы должны написать select, а не вставлять :
bytea = []
my_cursor = mydb.cursor()
with open(os.path.join('image\Image.png'), 'rb') as file:
image = file.read()
bytea.append(image)
insert_info = f"insert array_append(images, {image}) WHERE id = 7"
my_cursor.execute(insert_info)
mydb.commit()
Комментарии:
1. Я использовал приведенный выше сценарий, но все равно здесь ошибка
psycopg2.errors.SyntaxError: syntax error at or near "array_append" LINE 1: INSERT array_append(images, 'b'x89PNGrnx1anx00x00x00...