@goozzy
student of java dev

Синтактическая ошибка sqlite3?

def add_server(self, server_id, server_name, ignore_id = 0, population_id = 0):
        if self.is_server_exist(server_id): print('Server is already in table'); return
        self.cur.execute('INSERT OR REPLACE INTO servers (server_id,  server_name, channel_id_for_monitoring_population, role_id_for_ignoring_score) VALUES ({}, {}, {}, {})'.format(server_id, server_name, ignore_id, population_id))
        self.conn.commit()
        print(f'Server {server_name} was added')


ERROR: sqlite3.OperationalError: near "server": syntax error

С другой базой данных такая же запись, но все работает. Подскажите, пожалуйста.
Ниже код создания таблицы с полями.

self.cur.execute("""CREATE TABLE IF NOT EXISTS servers (
                    server_id INT PRIMARY KEY,
                    server_name TEXT,
                    channel_id_for_monitoring_population INT,
                    role_id_for_ignoring_score INT);
                    """)
  • Вопрос задан
  • 319 просмотров
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Каждую неделю пишу, что не стоит формировать запросы конкатенацией, интерполяцией и форматированием строк. Используйте prepared statements и будет вам счастье.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы