使用 python 显示的列数与第 1 行的值数不匹配错误
Column count doesn't match value count at row 1 error displayed using python
我是 python 的初学者。当我将记录插入数据库时。不添加记录。我在数据库中有两列 id
、name
。 id 设置为 mysql 自动递增。
from tkinter import *
import mysql.connector # Importing Connector package
def Ok():
result = e1.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",database="empdb")#established connection between your database
mycursor=mysqldb.cursor()
try:
mycursor.execute("insert into records values(%s)", (result,))
mysqldb.commit()
print('Record inserted successfully...')
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
raise Exception("Sorry, no numbers below zero")
root = Tk()
root.title("Employee Salary Calculation System")
root.geometry("300x400")
global e1
Label(root, text="Employee Name").place(x=10, y=10)
e1 = Entry(root)
e1.place(x=100, y=10)
Button(root, text="Cal", command=Ok ,height = 1, width = 3).place(x=10, y=150)
root.mainloop()
显示错误
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\kobinath\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:/Users/kobinath/PycharmProjects/pythonProject4/employee.py", line 20, in Ok
raise Exception("Sorry, no numbers below zero")
Exception: Sorry, no numbers below zero
我得到上面的错误。
在你的代码中,这一行
raise Exception("Sorry, no numbers below zero")
无论如何都会被执行。请检查您要执行的操作并进行修复。
但是无法插入记录的原因是:
mycursor.execute("insert into records values(result)")
请注意,引号内的整个字符串作为 SQL 语句执行。您确定“结果”在您的上下文中有效吗?这可能会使 MySQL 引发错误。我相信你的意思是这样的:
mycursor.execute("insert into records values(%s)", (result,))
如果你想在python中捕获异常,你可以使用下面的代码:
try:
x = int(input('Enter a number'))
except Exception as e:
print (e)
这将帮助您找出发生的错误类型。
您在尝试将数据插入 table 时遇到问题。
让我们假设我有一个名为 customers
的 table 并且它有两列 name
和 address
,那么我可以编写以下语句来插入一个记录到table.
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)
mydb.commit()
然后给commit 提交记录。如果您有不止一列,请务必在 INSERT 语句中提供这些详细信息。
我是 python 的初学者。当我将记录插入数据库时。不添加记录。我在数据库中有两列 id
、name
。 id 设置为 mysql 自动递增。
from tkinter import *
import mysql.connector # Importing Connector package
def Ok():
result = e1.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",database="empdb")#established connection between your database
mycursor=mysqldb.cursor()
try:
mycursor.execute("insert into records values(%s)", (result,))
mysqldb.commit()
print('Record inserted successfully...')
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
raise Exception("Sorry, no numbers below zero")
root = Tk()
root.title("Employee Salary Calculation System")
root.geometry("300x400")
global e1
Label(root, text="Employee Name").place(x=10, y=10)
e1 = Entry(root)
e1.place(x=100, y=10)
Button(root, text="Cal", command=Ok ,height = 1, width = 3).place(x=10, y=150)
root.mainloop()
显示错误
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\kobinath\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "C:/Users/kobinath/PycharmProjects/pythonProject4/employee.py", line 20, in Ok
raise Exception("Sorry, no numbers below zero")
Exception: Sorry, no numbers below zero
我得到上面的错误。
在你的代码中,这一行
raise Exception("Sorry, no numbers below zero")
无论如何都会被执行。请检查您要执行的操作并进行修复。
但是无法插入记录的原因是:
mycursor.execute("insert into records values(result)")
请注意,引号内的整个字符串作为 SQL 语句执行。您确定“结果”在您的上下文中有效吗?这可能会使 MySQL 引发错误。我相信你的意思是这样的:
mycursor.execute("insert into records values(%s)", (result,))
如果你想在python中捕获异常,你可以使用下面的代码:
try:
x = int(input('Enter a number'))
except Exception as e:
print (e)
这将帮助您找出发生的错误类型。
您在尝试将数据插入 table 时遇到问题。
让我们假设我有一个名为 customers
的 table 并且它有两列 name
和 address
,那么我可以编写以下语句来插入一个记录到table.
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)
mydb.commit()
然后给commit 提交记录。如果您有不止一列,请务必在 INSERT 语句中提供这些详细信息。