Как вставить переменную в sql запрос python?

Есть такой код:
sql.execute("UPDATE users SET message = random[0] WHERE id = user[0];")
 db.commit()
Этот код не работает

Как правильно вставить random[0] и user[0]
  • Вопрос задан
  • 146 просмотров
Решения вопроса 2
ramzis
@ramzis
FullStackOverflow
sql = "UPDATE `users` SET `message` = %s WHERE `id` = %s"
cursor.execute(sql, (random[0], user[0]))
Ответ написан
Amigun
@Amigun
Джун : |
Отредактировано

sql.execute(f"UPDATE users SET message = {random[0]} WHERE id = {user[0]};")
db.commit()


Если тип данных string, то нужно взять в кавычки:
sql.execute(f"UPDATE users SET message = '{random[0]}' WHERE id = '{user[0]}';")
db.commit()


Во избежание sql-инъекций, лучше использовать следующий вариант:
sql.execute("UPDATE users SET message = ? WHERE id = ?;", (random[0], user[0]))
db.commit()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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