Python &引用;在表中插入“值”;不发送数据
我在这方面是新手,这是我的第一个问题。我希望你们能帮忙。 如果我的问题格式不对,也可以随意评论 代码非常简单。我有DB连接,2个函数-一个用于打印,另一个用于选择要为这些查询执行和输入多少SQL查询 想法是输入一个SQL查询数(INT)——例如,2,然后在另一行中用户必须输入2个SQL查询。 之后,call_table函数将打印出当前表的状态/情况/数据 例如,用户希望打印出控制台表数据(表有两列,[name][college],varchar类型) 当我尝试向同一个表中插入一些值时,该表不会发生任何变化,不会输入数据。 查询是100%正确的,因为我在workbench中对它进行了测试,我还尝试从这个程序创建另一个表,查询正常执行,表也创建好了 我没有收到任何错误 代码如下:Python &引用;在表中插入“值”;不发送数据,python,sql-insert,mysql-python,Python,Sql Insert,Mysql Python,我在这方面是新手,这是我的第一个问题。我希望你们能帮忙。 如果我的问题格式不对,也可以随意评论 代码非常简单。我有DB连接,2个函数-一个用于打印,另一个用于选择要为这些查询执行和输入多少SQL查询 想法是输入一个SQL查询数(INT)——例如,2,然后在另一行中用户必须输入2个SQL查询。 之后,call_table函数将打印出当前表的状态/情况/数据 例如,用户希望打印出控制台表数据(表有两列,[name][college],varchar类型) 当我尝试向同一个表中插入一些值时,该表不会发
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查询,但insert到表中不起作用
谢谢您应该将查询附加到容器变量
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.append(input("Insert SQL statement: \n").upper())
for y in container:
cursor.execute(y)
sql_inputs(mycursor)
call_table(mycursor)
代码一切都很好,只是缺少了
cursor.commit()
在python中,对于插入查询,默认情况下游标提交为false
cursor.execute(y)
cursor.commit()
如果您完成了查询
db.close()
在程序的末尾,我添加了db.commit(),现在一切正常
import pymysql
db = pymysql.connect(host='localhost', user='root', passwd='45fa6cb2',
database='ivan')
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.append(input("Insert SQL statement: \n").upper())
for y in container:
cursor.execute(y)
sql_inputs(mycursor)
db.commit()
call_table(mycursor)
谢谢,我已经更改了它,但它没有解决问题。我收到一个错误,说“AttributeError:“NoneType”对象没有属性“commit”或“AttributeError:“Cursor”对象没有属性“commit”…我应该用db.commit()添加一个新变量,还是只在函数中添加一个新属性?在代码末尾,我添加了sql\u输入(mycursor)db.commit()调用_table(mycursor),现在它可以正常工作了。谢谢
import pymysql
db = pymysql.connect(host='localhost', user='root', passwd='45fa6cb2',
database='ivan')
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.append(input("Insert SQL statement: \n").upper())
for y in container:
cursor.execute(y)
sql_inputs(mycursor)
db.commit()
call_table(mycursor)