首页 > 解决方案 > “插入表值”不发送数据

问题描述

我是新手,这是我的第一个问题。我希望你们会有所帮助。如果我的问题格式有误,也请随时发表评论。

代码非常简单。我有数据库连接,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 查询,但插入到表中不起作用。

谢谢

标签: pythonsql-insertmysql-python

解决方案


代码一切都很好,你只是缺少cursor.commit() 默认情况下,python 中的光标提交为 false 以进行插入查询。

cursor.execute(y)

cursor.commit()

如果你完成了查询

db.close()

推荐阅读