将数据插入mysql数据库中的表

问题描述

我正在尝试将数据插入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文档。