@Wearant

Как обновить данные psycorp2?

Подскажите в чем причина ошибки ?

db_connection = psycopg2.connect(DB_URI, sslmode="require")
db_object = db_connection.cursor()
db_object.execute(f"UPDATE users SET first_name = {first_name} WHERE id = {user_id}")


syntax error at or near "Павел"
LINE 1: UPDATE users SET first_name = Павел WHERE id =*****
^
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
@antares4045
db_object.execute(f"UPDATE users SET first_name =? WHERE id =? ", [first_name, user_id] )

Ну или в крайнем случае

db_object.execute(f"UPDATE users SET first_name = '{first_name}' WHERE id = '{user_id}' ")

Почитайте на досуге про sql инъекции: анекдот про студента по имени DROP DATABASE станет понятнее.

Upd:
Толи psycopg2, толи cx_Oracle три года назад требовал явно указать тип инжектируемого: тоесть возможно всесто знаков вопроса надо поставить %s
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы