Děláte tu nebezpečné věci:
Žádné formátování řetězců (vkládání SQL)
Neměli byste používat formátování řetězce kvůli SQL Injection. Je to také složitější, když máte větší kód SQL. Použijte připravený příkaz jako:
query = "INSERT INTO id(email,passw) VALUES(%s,%s)"
args = (email, passw)
mycursor.execute(query, args)
Nevytvářejte neustále novou databázi/tabulku
Váš kód je předurčen k selhání pokaždé, protože nemůže vytvořit novou db se stejným názvem, pokud již existuje. To samé se stolem. Doporučuji vytvořit instalační skript. Také můžete umístit databázi do konektoru a nemusíte používat mycursor.execute("USE login;")
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database='login'
)
zavázat se
mysql konektor se ve výchozím nastavení automaticky nepotvrdí, viz:https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlconnection-commit.html
Takže to musíte udělat sami po provedení.
mydb.commit()
Kód by měl na konci vypadat takto:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database='login'
)
mycursor = mydb.cursor()
# sign up
email = input("Your email: ")
passw = input("Your password: ")
confirm_pass = input("Confirm password: ")
if passw == confirm_pass:
print("Successfuly registered!")
query = "INSERT INTO id(email,passw) VALUES(%s,%s)"
args = (email, passw)
mycursor.execute(query, args)
mydb.commit()
else:
print("wrong password!")