我正在尝试确保不会将重复的ID写入我的数据库。但是我的代码中存在一些逻辑错误,因为它似乎跳过了第二个TRY并停留在第一个EXCEPT中。 (aa变量是通过Tkinter表单从用户那里获得的ID)
我尝试转移代码。如果我不尝试验证重复的ID,效果很好。
def registeruser(aa,ab,ac,ad,af):
print(aa.get())
print(ab.get())
print(ac.get())
print(ad.get())
print(af.get())
import sys
import mysql.connector as mc
try:
conn = mc.connect(host='localhost', user='root', password='', db='car_park_master')
except mc.Error as e:
print("Error %d: %s" % (e.args[0], e.args[1]))
sys.exit(1)
cursor = conn.cursor()
cursor.execute("SELECT ID FROM permanent_user_info")
checkID = cursor.fetchall()
try:
for x in checkID:
if(aa.get()!=x[0]):
try:
pram = (aa.get(), ab.get(), ac.get(), ad.get(), af.get())
sql_insert_query = """ INSERT INTO `permanent_user_info`
(`ID`, `name`, `address`, `phone`,`car_plate`) VALUES (%s,%s,%s,%s,%s)"""
result = cursor.execute(sql_insert_query, pram)
conn.commit()
cursor.close()
conn.close()
except:
messagebox.showinfo('Register Error','Could not register user. Please try again.')
except:
messagebox.showinfo('Duplicate ID','This ID is already taken. Please try a different ID.')
应该采用这些值(aa-ID,ab-Name,ac-Phone,ad-carplate,af-tab)并输入到mysql表中。该部分工作正常,但无法验证是否要创建重复的ID。