cheers Mark, it was the syntax that was foxing me; I don't like the example of the select statement via the insecure approach because the writer is adding an element of ambiguity since the table has a field called <symbol> and a variable also called <symbol>
#modifying my class to import sqlite3 class do: myString1 = 'uranium' myString2 = ('lead',) def doConn(self): self.conn = sqlite3.connect('encyclopedia') print "Opened database successfully" myString3 = 'sulphur' cursor = self.conn.execute("SELECT * from wiki WHERE one LIKE '%s' "% self.myString1) #cursor = self.conn.execute("SELECT * from wiki WHERE one =?", self.myString2) #cursor = self.conn.execute("SELECT * from wiki WHERE one LIKE '%s'" % myString3 ) for row in cursor: print "ID = ", row[0] print "NAME = ", row[1] print "Operation done successfully" self.conn.close() x = do() x.doConn() #all select statements work , the first two strings are defined under class so referencing with 'self' works. other is defined inside method so doesn't need it. -- https://mail.python.org/mailman/listinfo/python-list