Как правильно написать запрос SQL INSERT

def signup_function(self):
    user = str(self.signup_username_line.text())
    passw = str(self.signup_password_line.text())
    if not user or not passw:
        print("Please fill in all inputs")
    else:
        conn = sqlite3.connect('handler/users.db')
        cur = conn.cursor()
        cur.execute(f"INSERT INTO users (username, password) VALUES {({user},{passw})}")
        conn.commit()
        conn.close()

вычислил, что проблема заключается в query, который я запускаю в cur.execute, но не могу понять что не так?


Ответы (1 шт):

Автор решения: S. Nick

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

Попробуйте так:

import sqlite3
con = sqlite3.connect('q1397093_users.db')

user = 'noobdeveloper'
passw = 'Tom12345'
    
with con:
    cur = con.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS users_q1397093(id INTEGER PRIMARY KEY, username TEXT, password TEXT);")

# +++ ---------------------------------------------------------------->  v      v  v       v    
    cur.execute(f"INSERT INTO users_q1397093(username, password) VALUES ('{user}', '{passw}');")
# +++ ----------------------------------------------------------------> ^^^^^^^^^^^^^^^^^^^^^^

    last_row_id = cur.lastrowid
    print(f"The last Id of the inserted row is {last_row_id}")    
    

введите сюда описание изображения

→ Ссылка