python - “插入表值”不发送数据
问题描述
我是新手,这是我的第一个问题。我希望你们会有所帮助。如果我的问题格式有误,也请随时发表评论。
代码非常简单。我有数据库连接,2 个函数 - 一个用于打印,另一个用于选择我想要执行多少 SQL 查询并为这些查询输入。
想法是输入一个数字(INT)的 SQL 查询 - 例如,2 然后在另一行中用户必须输入 2 个 SQL 查询。之后, call_table 函数将打印出当前表状态/情况/数据。
例如 - 用户想要打印到控制台表数据(表有 2 列,[name][college],varchar 类型)
Insert a number of SQL queries you want to execute: 1
Insert SQL statement:
select * from student
('ivan', 'ino')
('nena', 'fer')
('tomislav', 'ino')
('marko', 'fer')
('tomislav', 'ino')
('marko', 'fer')
当我尝试将一些值插入到同一个表中时,表没有任何反应,没有输入数据。该查询是 100% 正确的,因为我在工作台中对其进行了测试,并且我尝试从该程序创建另一个表,并且查询正常执行并创建了表。
我没有收到任何错误。
代码如下:
import pymysql
db = pymysql.connect(host='localhost', user='root', passwd='123456', database='test')
mycursor = db.cursor()
def call_table(data_print):
for i in data_print:
print(i)
def sql_inputs(cursor):
container = []
no = int(input("Insert a number of SQL queries you want to execute: "))
for i in range(no):
container = [input("Insert SQL statement: \n").upper()]
for y in container:
cursor.execute(y)
sql_inputs(mycursor)
call_table(mycursor)
我究竟做错了什么?我尝试了更复杂的 SQL 查询,但插入到表中不起作用。
谢谢
解决方案
代码一切都很好,你只是缺少cursor.commit()
默认情况下,python 中的光标提交为 false 以进行插入查询。
cursor.execute(y)
cursor.commit()
如果你完成了查询
db.close()
推荐阅读
- java - 构建发布构建的签名 APK 失败,但调试成功。缺课
- html - 我想用 html 和 css 解决所有这些评估
- jquery - Moment.js:时间不基于计算机时间
- r - R Markdown 2列应该具有相同的名称
- android - 如何获取firebase中元素的关键?
- javascript - 两个 div 问题之间的滚动延迟
- tensorflow - 在 jupyter notebook 中运行训练有素的 kaggle 模型
- flutter - 如何同时使用 Firebase Auth 和 Facebook 登录?
- r - 比较数据框中的所有行并有条件地应用函数
- java - 如何在 JTextField 中排列二维数组的值