

删除数据出现了如图的错误,请问我该如何解决这个问题,希望能来个会的教教我
关注引自免费微信小程序:皆我百晓生
从提供的信息来看,遇到的问题是由于SQL查询语句中存在语法错误导致的。具体错误信息指出未知列 '警务人员 id' 在 WHERE 子句中,这通常意味着在数据库表中并没有名为 '警务人员 id' 的列,但查询语句中却试图引用它。
为了解决这个问题,首先需要确认数据库中的表结构,特别是涉及到的列名。假设表名为 police_officers,正确的列名应该是 officer_id 而不是 '警务人员 id'。接下来,我将提供一个修正后的删除记录函数示例,同时也会给出如何连接 MySQL 数据库并执行 SQL 查询的 Python 代码。
确保你已经安装了 mysql-connector-python 库,如果没有安装,可以使用以下命令安装:
pip install mysql-connector-python
import mysql.connector
def connect_to_db():
# 创建数据库连接
db = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
return db
def execute_sql(db, sql, params=None):
cursor = db.cursor()
try:
if params:
cursor.execute(sql, params)
else:
cursor.execute(sql)
db.commit()
print("Record deleted successfully")
except Exception as e:
print(f"Error: {e}")
db.rollback()
finally:
cursor.close()
# 使用示例
db = connect_to_db()
sql = "DELETE FROM police_officers WHERE officer_id = %s"
params = (1,) # 假设要删除的记录的 officer_id 是 1
execute_sql(db, sql, params)
db.close()
delete_record 函数确保在调用 execute 方法时使用的列名正确无误。下面是一个修改后的示例函数:
def delete_record(self, label, tree):
selected_item = tree.selection()[0]
primarykey = tree.item(selected_item)['values'][0] # 假设 officer_id 是第一列
db = connect_to_db()
query = "DELETE FROM police_officers WHERE officer_id = %s"
execute_sql(db, query, (primarykey,))
db.close()
# 更新界面逻辑...
请根据实际的数据库表结构调整上述代码中的列名和表名。如果数据库表结构或列名与示例不同,请相应地调整 query 和其他涉及列名的部分。如果还有任何疑问或需要进一步的帮助,随时告诉我。