我无法从tkinter表单向mysql插入数据

时间:2019-05-22 20:13:26

标签: python-3.x mysql-python

我可以完美地连接到我的数据库,以某种方式设法将它的写入部分弄糟。 我只是找不到答案,我真的很想了解点什么!

这是我的代码:

from tkinter import *
from tkinter import messagebox
import mysql.connector
from mysql.connector import MySQLConnection, Error


db = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="oliver1989",
    database="pruebas_mysql"
)


def insert_newuser():
    cursor = db.cursor()

    add_usuario = """INSERT INTO reg_us(nombre, paterno, materno, usuario, contra)"
                   "VALUES(%s, %s, %s, %s, %s)"""% (new_nombre.get(), new_paterno.get(), new_materno.get(), new_usuario.get(), new_contraseña.get())
    #data_registro = (new_nombre.get(), new_paterno.get(), new_materno.get(), new_usuario.get(), new_contraseña.get())

    cursor.execute(add_usuario)
    db.commit()

def registro_usuario():
    screen1=Toplevel(screen)
    screen1.geometry("280x400")
    screen1.config(bg="#5EC659")
    screen.title("Registro")

    global new_nombre
    new_nombre=StringVar()
    global new_paterno
    new_paterno=StringVar()
    global new_materno
    new_materno=StringVar()
    global new_usuario
    new_usuario=StringVar()
    global new_contraseña
    new_contraseña=StringVar()
    global con_contraseña
    con_contraseña=StringVar()

    Label(screen1, text="Por favor llena este formulario", font=("consolas", 10), bg="#5EC659", fg="white").pack()
    Label(screen1, text="", bg="#5EC659").pack()
    Label(screen1, text="Nombre / s", font=("consolas", 10), bg="#5EC659", fg="white").pack()
    Entry(screen1, textvariable=new_nombre).pack()
    Label(screen1, text="Apellido paterno", font=("consolas", 10), bg="#5EC659", fg="white").pack()
    Entry(screen1, textvariable=new_paterno).pack()
    Label(screen1, text="Apellido Materno", font=("consolas", 10), bg="#5EC659", fg="white").pack()
    Entry(screen1, textvariable=new_materno).pack()
    Label(screen1, text="Usuario", font=("consolas", 10), bg="#5EC659", fg="white").pack()
    Entry(screen1, textvariable=new_usuario).pack()
    Label(screen1, text="Contraseña", font=("consolas", 10), bg="#5EC659", fg="white").pack()
    Entry(screen1, textvariable=new_contraseña).pack()
    Label(screen1, text="Confirma la contraseña", font=("consolas", 10), bg="#5EC659", fg="white").pack()
    Entry(screen1, textvariable=con_contraseña).pack()
    Label(screen1, text="", bg="#5EC659").pack()
    Button(screen1, text=" Registrar", height="1", width="10", font=("consolas", 11), command=insert_newuser).pack()



def check_udb():
    print("hola")


def main_screen():
    global screen
    screen = Tk()
    screen.geometry("280x300")
    screen.config(bg="#5EC659")
    screen.title("Planeaciones 1.0")

    global usuario
    global contraseña
    usuario = StringVar()
    contraseña =StringVar()

    Label(text="Bienvenido", font=("consolas", 15), bg="#5EC659", fg="white").pack()
    Label(text="", bg="#5EC659").pack()
    Label(text="Usuario", bg="#5EC659", fg="white", font=("consolas", 13)).pack()
    Entry(screen, textvariable = usuario).pack()
    Label(text="Contraseña", bg="#5EC659", fg="white", font=("consolas", 13)).pack()
    Entry(screen, textvariable = contraseña).pack()
    Label(text="", bg="#5EC659").pack()
    Button(text="Ingresar", height="1", width="8", font=("consolas", 10), fg="#1E1E1E", command=check_udb).pack()
    Label(text="¿No cuentas con usuario?", bg="#5EC659", fg="white").pack()
    Label(text="¡Facil!, registra tu nuevo usuario.", bg="#5EC659", fg="white").pack()
    Button(text="Registrarse", height="1", width="11", font=("consolas", 10), fg="#1E1E1E", command=registro_usuario).pack()

    screen.mainloop()


main_screen()

这是我在控制台中遇到的错误:

  

“ C:\ Users \ ICATVER 03 \ PycharmProjects \ pruebas   mysqldb \ venv \ Scripts \ python.exe“” C:/ Users / ICATVER   03 / PycharmProjects / pruebas mysqldb / index.py“ Tkinter中的异常   回调回溯(最近一次呼叫最近):文件“ C:\ Users \ ICATVER   03 \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ tkinter__init __。py“,   第1705行,在致电       返回self.func(* args)文件“ C:/ Users / ICATVER 03 / PycharmProjects / pruebas mysqldb / index.py”,第22行,在   insert_newuser       cursor.execute(add_usuario)文件“ C:\ Users \ ICATVER 03 \ PycharmProjects \ pruebas   mysqldb \ venv \ lib \ site-packages \ mysql \ connector \ cursor.py“,第551行,   在执行       self._handle_result(self._connection.cmd_query(stmt))文件“ C:\ Users \ ICATVER 03 \ PycharmProjects \ pruebas   mysqldb \ venv \ lib \ site-packages \ mysql \ connector \ connection.py“,行   490,在cmd_query中       结果= self._handle_result(self._send_cmd(ServerCmd.QUERY,查询))文件“ C:\ Users \ ICATVER 03 \ PycharmProjects \ pruebas   mysqldb \ venv \ lib \ site-packages \ mysql \ connector \ connection.py“,行   395,以_handle_result       引发错误.get_exception(数据包)mysql.connector.errors.ProgrammingError:1064(42000):您有一个   您的SQL语法错误;检查与您的手册相对应的手册   MySQL服务器版本,可在'“附近使用正确的语法                      “ VALUES(asdf,asdf,asdf,asdf,asdf)'位于第1行

0 个答案:

没有答案