Python sqlite connection.fetchone () не возвращает ничего, если это данные в базе данных - PullRequest
0 голосов
/ 04 августа 2020

Привет, я использую следующий код:

def getDatabase():
    conn = sqlite3.connect('data.db')
    connection = conn.cursor()
    connection.execute('''CREATE TABLE IF NOT EXISTS data(CK, CSK, ATK, ATSK, DAK)''')
    conn.commit()
    row = connection.fetchone()
    print(row)
    if row:
        print("Database Has  Rows")
        ShowOptionScreen()

    else:
        print("Database Has No Rows")
        getKEYSfromuser()

Я использую эту функцию, чтобы проверить, существует ли таблица, и проверяет ли она, есть ли данные в таблице - если нет, я вызываю эту функцию чтобы сохранить введенные пользователем данные в таблицу:

def getKEYSfromuser():
    global a
    global b
    global c
    global d
    global auth
    global userInputKeys 
    DisplayUserKeyInput = prompt(userInputKeys, style=style) 
    json_str = json.dumps(DisplayUserKeyInput)
    resp = json.loads(json_str) 
    a = resp['Consumer Key']
    b =  resp['Consumer Secret Key']
    c =  resp['Access Token Key']
    d = resp['Access Token Secret Key']
    auth = resp['Discord Auth key']
    conn = sqlite3.connect('data.db')
    connection = conn.cursor()
    connection.execute("INSERT INTO data (CK, CSK, ATK, ATSK, DAK) VALUES (?, ?, ?, ?, ?)",(str(a), str(b), str(c), str(d), str(auth)))
    conn.commit()
    conn.close()
    apilogin(a,b,c,d)
    ShowOptionScreen()

Однако в первой функции, когда в базе данных есть строки, row = connection.fetchone() возвращает значение none. Как я могу решить эту проблему?

Но могу ли я даже сохранить данные с помощью функции, которую я не могу сказать, пожалуйста, кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 04 августа 2020

Вы забыли добавить connection.execute("select * from data")

Вот правильный код


def getDatabase():
    conn = sqlite3.connect('data.db')
    connection = conn.cursor()
    connection.execute('''CREATE TABLE IF NOT EXISTS data(CK, CSK, ATK, ATSK, DAK)''')
    conn.commit()
    connection.execute("select * from data")#you forgot to add this
    row = connection.fetchone()
    print(row)
    if row:
        print("Database Has  Rows")
        #ShowOptionScreen()

    else:
        print("Database Has No Rows")
        #getKEYSfromuser()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...