在python中运行mySql命令

2024-10-02 04:37:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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(),它显示它工作正常:

^{pr2}$

但数据库仍然为空意味着curser.execute(sql)未执行。如何执行这些插入?在


Tags: iddbsqldatatitlelocationtrackcursor
1条回答
网友
1楼 · 发布于 2024-10-02 04:37:18

尝试将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

set connection's autocommit to True

^{pr2}$

关于你的execute风格的一些建议。在

试试这个方法:

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))

相关问题 更多 >

    热门问题