David Mitchell wrote:
> Hello,
> 
> I am a complete beginner with Python. I've managed to get mod_python up and
> running with Apache2 and I'm trying to a simple insert into a table in a
> MySQL database. 
> 
> I'm using the MySQLdb library for connectivity. I can read from the database
> no problem, but when I do an insert, the value never gets added to the
> database, even though there is no error, and the SQL is fine (I print out
> the SQL statement in the function). When I copy and paste the sql from my
> browser and insert directly into MySQL, it works fine.
> 
> Here is the function in question:
> 
> def add(req):
>       db = MySQLdb.connect(host="intranet", user="root", passwd="",
> db="intranet")
>       # create a cursor
>       cursor = db.cursor()
>       # execute SQL statement
>       
>       sql = "INSERT INTO category (category_name) VALUES ('" +
> req.form['category'] + "')"
>       cursor.execute(sql)
>       return sql
> 
> 
> The SQL it is outputting is:
> 
> INSERT INTO category (category_name) VALUES ('Test')
> 
> Am I doing something obviously incorrect here?
> 
> Thanks,
> 
> Dave
> 

Try either executing this first:
     cursor.execute("set autocommit = 1")
or this afterwards:
     cursor.execute("commit")

The idea is that transactions are not committed into the database 
until you "commit" them - and if you hit problems halfway through 
a sequence of updates that really shouldn't be left half 
finished, you can execute "abort" instead (or just close the 
connection), and none of them will be done.

Steve
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to