问题描述
我正在尝试将数据插入MysqL db,它不会给我任何错误,但是会向数据库表发送空数据而不是我的数据。 我找不到为什么无法正常运行的原因。 这是代码段代码:
import MysqL.connector
import re
def insert_to_db (user_name,password):
cnx = MysqL.connector.connect (user='root',password='Alora36318',host='localhost',database='Alora')
cursor = cnx.cursor ()
cursor.execute ('INSERT INTO email_address VALUES (user_name,password)')
cnx.commit ()
cnx.close()
def add_data ():
regex_email = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
regex_names = '^[a-zA-Zا-ی]'
user_name = input ("Enter Your Email Address: ")
password = input ("Enter Your Password: ")
def check_email(email):
if (re.search(regex_email,email)):
return True
else:
return False
if not check_email(user_name):
print ("Error","This Email Is Not A Valid Email")
print ("Correct form: example@email.com")
add_data ()
else:
insert_to_db (user_name,password)
print ('Successfuly Inserted to DB!',user_name,password)
add_data ()
add_data ()
解决方法
我是个大佬,所以我问了这个有趣的问题,但对于大佬来说,这就是答案:
建立连接:
conn = mysql.connector.connect (host = 'localhost',database = 'databasename',user = 'username',password = 'password')
cursor = conn.cursor()
确保你在数据库中有表:
table_creation = """CREATE TABLE IF NOT EXISTS table_name (value_name1 value_type1,value_name2 value_type2,value_name3 value_type3)"""
cursor.execute (table_creation)
conn.commit()
cursor = conn.cursor()
然后为表格插入文本:
sql = """INSERT INTO table_name (value_name1,value_name2,value_name3) VALUES (%s,%s,%s)"""
将可以是字符串、数字、整数、布尔值、日期或任何数据类型的变量名称的值放入表中:
val = (value1,value2,value3)
cursor.execute(sql,val)
conn.commit()
cursor = conn.cursor()
然后关闭您的连接:
cursor.close()
就这些,非常简单,更多信息查看mysql文档。