gpt4 book ai didi

python - 在 python 中运行 mySql 命令

转载 作者:行者123 更新时间:2023-11-30 22:36:27 26 4
gpt4 key购买 nike

我有一个 python 程序连接到 mySql 表并在其中插入一些值,但它不起作用。这是我的代码:

 doc = minidom.parse("wscanOutput.xml")
tracks = doc.getElementsByTagName("track")
for track in tracks:
title = track.getElementsByTagName("title")[0]
location = track.getElementsByTagName("location")[0]
vlcOption = track.getElementsByTagName("vlc:option")[0]
tit = title.firstChild.data[6: ].replace (" ", "-")
loc = location.firstChild.data[18:27]
sid = vlcOption.firstChild.data[8: ]
dvbID = 0
tuneID = 0
db = MySQLdb.connect("localhost","root","paco","dvbDB")
cursor = db.cursor()
print("INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (%s" % dvbID + ", %s" % tuneID + ", '%s'" % tit + ", %s" % sid + ", %s)" % loc)
sql = "INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (%s" % dvbID + ", %s" % tuneID + ", '%s'" % tit + ", %s" % sid + ", %s)" % loc
cursor.execute(sql)
db.close()

这是我的输出 print() 表明它工作正常:

INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'IRIB-QURAN', 108, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'IRIB-SALAMAT', 119, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'IRIB-NASIM', 120, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'RADIO-IRAN', 151, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'RADIO-PAYAM', 152, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'RADIO-JAVAN', 153, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'RADIO-MAAREF', 154, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'RADIO-QURAN', 155, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'RADIO-FARHANG', 156, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'RADIO-SALAMAT', 157, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'RADIO-VARZESH', 158, 602000000)
INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (0, 0, 'RADIO-EGHTESAD', 159, 602000000)

但数据库仍然是空的意味着 curser.execute(sql) 没有执行。如何执行这些插入?

最佳答案

尝试将 conn.commit() 添加到您的代码中。

conn = MySQLdb.connect("localhost","root","paco","dvbDB")
cursor = conn.cursor()
sql = "INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (%s" % dvbID + ", %s" % tuneID + ", '%s'" % tit + ", %s" % sid + ", %s)" % loc
cursor.execute(sql)
conn.commit() #notice

OR 将连接的自动提交设置为 True

conn = MySQLdb.connect("localhost","root","paco","dvbDB")
cursor = conn.cursor()
cursor.connection.autocommit(True) #notice
sql = "INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (%s" % dvbID + ", %s" % tuneID + ", '%s'" % tit + ", %s" % sid + ", %s)" % loc
cursor.execute(sql)

关于您的执行风格的一点建议。

试试这个方法:

sql = "INSERT INTO dvbDBTable (dvb_id, tune_id, channel_name, sid, frequency) VALUES (%s, %s, %s, %s, %s)"
cursor.execute(sql,(dbvID, tuneID, tit, sid, loc))

关于python - 在 python 中运行 mySql 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32421284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com