On 08/08/2014 20:07, Matt Smith wrote:
I am trying to write a program that will loop through a text file and
delete rows in a mysql database.
It seemingly runs but I don't see anything getting deleted in the db.
Is there anything apparent that I am missing?
This is the code:
#!/usr/bin/python
import mysql.connector
#
f=open('/home/smithm/email-list.txt', 'r')
The modern idiom is:-
with open(...) as f: but that doesn't matter here.
for line in f:
#<do something with line>
# Open database connection
db = mysql.connector.connect(user="xx", password="xx",
host="localhost", database="xx")
# prepare a cursor object using cursor() method
cursor = db.cursor()
Are you aware that you're connecting to your db and setting up the
cursor in every iteration of the loop?
# Prepare SQL query to DELETE required records
sql = "DELETE FROM tblc_users WHERE user_email=%s, % (line)"
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
db.commit()
except:
This bare except is masking every possible thing that can go wrong.
Strip it out and I expect you'll find your mistake in seconds. Once
you've corrected your code add back in the bare minimum number of
exceptions that you really should catch.
# Rollback in case there is any error
db.rollback()
# disconnect from server
db.close()
--
Matthew Smith
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
--
https://mail.python.org/mailman/listinfo/python-list