Você está fazendo algumas coisas perigosas aqui:
Sem formatação de string (injeção de SQL)
Você não deve usar a formatação String por causa de SQL Injection. Também é mais complicado quando você tem um código SQL maior. Use declaração preparada como:
query = "INSERT INTO id(email,passw) VALUES(%s,%s)"
args = (email, passw)
mycursor.execute(query, args)
Não crie banco de dados/tabela novo o tempo todo
Seu código está destinado a falhar todas as vezes porque não pode criar um novo banco de dados com o mesmo nome se já existir. O mesmo com a mesa. Sugiro criar um script de configuração. Além disso, você pode colocar o banco de dados no conector e não precisa usar
mycursor.execute("USE login;")
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database='login'
)
comprometer
O conector mysql não se autocommit por padrão, veja:https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlconnection-commit.html
Então você tem que fazer isso sozinho após a execução.
mydb.commit()
O código deve ficar assim no final:
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!")