[Tutor] Python + MySQL , my first simple program does not gives results

Alan Gauld alan.gauld at freenet.co.uk
Thu Jan 19 20:36:41 CET 2006


>             I was trying to get the  some result , eg
> describe table, select * from table
>   but my program does not give the expected results ,
> nor it gives any error

First of all you have only defined init() but not created an instance
so it never actually gets called! But if you do call it(by creating
an instance of learnpython_db)...

You are fetching the results into the cursor but you never access them!
So the second execute call will overwrite the first execute with the
SELECT results. But then you exit the init() function so cursor
(a local variable) is garbage collected and the results die with it..

> import MySQLdb
> class learnpython_db:
>        def __init__(self):
>                db =
> MySQLdb.connect(host="localhost",user =
> "john",password = "asdlkj", db = learnpython)
>                cursor = db.cursor()
>                cursor.execute(" describe contact" )
>                cursor.execute(" SELECT * from
> contact" )

You probably want to make cursor (and maybe db too) an instance variable.
Then you can access the results of the cursor in other methods of the 
object.

You will see this illustrated in my tutorial topic albeit using SQLite but 
the
cursor hjandling is nearly identical.

Alan G
Author of the learn to program web tutor
http://www.freenetpages.co.uk/hp/alan.gauld




More information about the Tutor mailing list