我是新手,这是我的第一个问题。希望你们能帮上忙。如果我的问题格式不正确,请随时对此发表评论。
代码非常简单。我有数据库连接,有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查询,但无法插入表中。
谢谢
代码一切都很好,您只是想念cursor.commit()
默认情况下,对于插入查询,光标提交在python中为false。
cursor.execute(y)
cursor.commit()
并且如果您已完成查询,则>]
db.close()
您应该将查询附加到容器变量
在程序的最后,我添加了db.commit(),现在一切正常。