I have a python program which connects to a mySql table and insert some values in it but it does not work. here is my code:
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()
and here is my output print()
that shows it works fine:
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)
but database is still empty means curser.execute(sql)
not executing. how to execute these inserts?
Try add conn.commit()
to your code.
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 set connection's autocommit to 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)
A little advice on your execute
style.
Try this way:
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))
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.