有兩種方法:
1.直接檢測是什么異常(查mysql文檔找出異常代碼)
import os import mysql_operate.mysql_connect as mysql import re def insert(user_email, nickname): cnx = mysql.connect() cur = cnx.cursor() # sql = "INSERT INTO users VALUES (%d, %d)" try: # print("正在嘗試......") cur.execute("INSERT INTO users VALUES(%r ,%r)" % (user_email, nickname)) print("插入成功!") mysql.disnect(cnx) return 1 except Exception as ER_DUP_ENTRY: #except Exception as e: # print("發生錯誤,錯誤信息為:", e) # mmm = '1062 (23000): Duplicate entry \'[\S]*\' for key \'PRIMARY\'' # print(str(e)) # print(mmm) # # # # if(re.search(mmm , str(e))): # print("該用戶已注冊!") print("成功了") mysql.disnect(cnx) return 0 mysql.disnect(cnx) if __name__ == "__main__": email = "test_email1@qq.com" nickname = "hahahaha" insert(email, nickname)
2.如上注釋的代碼,直接檢測異常的字符串進行正則匹配,關於如何匹配該異常字符串可以找我上一篇隨筆,python正則表達式的艱辛路