“插入表值”不发送数据

问题描述 投票:0回答:3

我是新手,这是我的第一个问题。希望你们能帮上忙。如果我的问题格式不正确,请随时对此发表评论。

代码非常简单。我有数据库连接,有2个功能-一个用于打印,另一个用于选择要执行多少SQL查询并为这些查询输入的功能。

想法是输入一个SQL查询的数字(INT)-例如,2,然后在另一行中,用户必须输入2个SQL查询。之后,call_table函数将打印出当前表的状态/情况/数据。

例如,用户想要打印到控制台表数据(表有两列,[名称] [学院],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查询,但无法插入表中。

谢谢

python sql-insert mysql-python
3个回答
1
投票

代码一切都很好,您只是想念cursor.commit()默认情况下,对于插入查询,光标提交在python中为false。

cursor.execute(y)

cursor.commit()

并且如果您已完成查询,则>]

db.close()

0
投票

您应该将查询附加到容器变量


0
投票

在程序的最后,我添加了db.commit(),现在一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.