Anda melakukan beberapa hal berbahaya di sini:
Tanpa pemformatan String (Injeksi SQL)
Anda tidak boleh menggunakan pemformatan String karena SQL Injection. Ini juga lebih rumit ketika Anda memiliki kode SQL yang lebih besar. Gunakan Pernyataan yang sudah disiapkan seperti:
query = "INSERT INTO id(email,passw) VALUES(%s,%s)"
args = (email, passw)
mycursor.execute(query, args)
Jangan selalu membuat DB/Tabel baru
Kode Anda ditakdirkan untuk gagal setiap saat karena tidak dapat membuat db baru dengan nama yang sama jika sudah ada. Begitu pula dengan meja. Saya akan menyarankan untuk membuat skrip pengaturan. Anda juga dapat meletakkan database di konektor dan tidak harus menggunakan mycursor.execute("USE login;")
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database='login'
)
berkomitmen
konektor mysql tidak autocommit secara default lihat:https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlconnection-commit.html
Jadi Anda harus melakukannya sendiri setelah eksekusi.
mydb.commit()
Kode akan terlihat seperti ini pada akhirnya:
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!")