在连接数据库使用python的图形工具直接插入修改时,出现了下面的错误
有没有学霸帮忙看看
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\lenovo\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "D:\pythonProject1\Suppliersinfo.py", line 113, in Submit
cur.execute(sql)
File "D:\pythonProject1\venv\lib\site-packages\pymysql\cursors.py", line 158, in execute
result = self._query(query)
File "D:\pythonProject1\venv\lib\site-packages\pymysql\cursors.py", line 325, in _query
conn.query(q)
File "D:\pythonProject1\venv\lib\site-packages\pymysql\connections.py", line 549, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "D:\pythonProject1\venv\lib\site-packages\pymysql\connections.py", line 779, in _read_query_result
result.read()
File "D:\pythonProject1\venv\lib\site-packages\pymysql\connections.py", line 1157, in read
first_packet = self.connection._read_packet()
File "D:\pythonProject1\venv\lib\site-packages\pymysql\connections.py", line 729, in _read_packet
packet.raise_for_error()
File "D:\pythonProject1\venv\lib\site-packages\pymysql\protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\pythonProject1\venv\lib\site-packages\pymysql\err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1136, "Column count doesn't match value count at row 1")
接下来,我们可以从终端进入mysql,执行sql查询操作即可
SELECT * FROM student_base_info;
结果和上面的相似,也可以试试聚合查询
select dept_id, count(*) from student_base_info group by dept_id;
得到的数据如下
当然我们也可以用不惯python脚本进行查询并且格式化输出,即使用下面的这个脚本
if __name__ == '__main__':
print_hi('PyCharm')
cur,db = conect_mysql('localhost','root','password',3306,'student')
sql = 'select * from student_base_info'
print("====== 开始执行 ========")
cur.execute(sql)
results = cur.fetchall();
# print(results)
print('name\t age\tfirst_name\tlast_name\tdept_id')
for result in results:
id = result[0]
first_name = result[1]
last_name = result[2]
age = result[3]
dept_it = result[4]
print('\t{0}\t{1}\t {2}\t{3}\t{4}'.format(id,first_name,last_name,age,dept_it))
# db.commit()
print("====== 完成执行 ========")
最终输出结果为: