Python sqlite3 update удаляет мою строку вместо обновления значения - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь обновить значение x на основе указанного идентификатора строки y в python, используя sqlite3. Однако проблема у меня заключается в том, что вместо обновления значения в указанном столбце сценарий удаляет всю строку / запись из базы данных.

Вот функция

def closeIssue(self, issue_id, resolver_discord_id):
        # This function closes an open issue and assigns the resolver's ID
        self.c.execute("SELECT * FROM issues WHERE issue_id={}".format(issue_id))
        result = self.c.fetchone()
        if not result:
            print("No such record")
        else:
            self.c.execute("UPDATE issues SET issue_status = 'CLOSED' where issue_id = ?", (issue_id))
            self.conn.commit()

        self.__closeDatabase(False)

Просто для дальнейшего контекста, ниже приведены некоторые другие части модуля.

Создатель базы данных (и структура):

def __buildDatabase(self):
        conn = sqlite3.connect(self.issue_db)
        c = conn.cursor()
        c.execute("""CREATE TABLE issues (
                        issue_id integer,
                        issue_type text,
                        issue_type_verbose text,
                        author_discord integer,
                        issue_content text,
                        issue_status text,
                        issue_creation_timestamp text,
                        issue_closed_timestamp text,
                        resolver_staff_discord integer
                        )""")
        conn.commit()
        print("Database created")

Как выглядит типичная запись:

[{'issue_id': 1, 'issue_type': 'reports', 'issue_type_verbose': 'Report', 'author_discord': 124123123, 'issue_content': 'report one', 'issue_status': 'OPEN', 'issue_creation_timestamp': '14:29:33 - 20/02/2020', 'issue_closed_timestamp': 'NONE', 'resolver_staff_discord': 'NONE'}, {'issue_id': 2, 'issue_type': 'reports', 'issue_type_verbose': 'Report', 'author_discord': 41312, 'issue_content': 'report two', 'issue_status': 'OPEN', 'issue_creation_timestamp': '14:29:42 - 20/02/2020', 'issue_closed_timestamp': 'NONE', 'resolver_staff_discord': 'NONE'}]

Я надеюсь, что вы можете помочь мне с этим, заранее спасибо! Последние несколько часов я бился в голову по этому вопросу и, похоже, нигде не могу найти решение, куда бы я ни посмотрел.

1 Ответ

0 голосов
/ 20 февраля 2020

Я исправил это. Я глупый. Заранее извиняюсь, и я думаю, что заслужил это за последние три часа. Оказывается, проблема была в том, как я отображал результаты теста ... он был отфильтрован только для открытых случаев. Иисус. Хорошо, подтвердил, что этот код работает как задумано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...