Ich möchte gern eine Klasse erstellen, die von MySQLdb erbt. Diese möchte ich dann mit einer Allgemeinen SELECT, INSERT, UPDATE u.a. erweitern...
Eine INSERT und UPDATE Methode könnte ungefähr so aussehen:
Code: Alles auswählen
def insert( self, table, data ):
"""
Vereinfachter Insert, per dict
data ist ein Dict, wobei die SQL-Felder den Key-Namen im Dict entsprechen muß!
"""
items = data.keys()
values = data.values()
SQLcommand = "INSERT INTO `%(dbTablePrefix)s%(table)s` ( %(items)s ) VALUES ( %(values)s );" % {
"dbTablePrefix" : dbconf["dbTablePrefix"],
"table" : table,
"items" : ",".join( items ),
"values" : ",".join( ["%s"]*len(values) ) # Platzhalter für SQLdb-escape
}
if len( values ) == 1:
self.cursor.execute( SQLcommand, (values[0],) )
else:
self.cursor.execute( SQLcommand, tuple( values ) )
def update( self, table, data, where, limit=None ):
"""
Vereinfachte SQL-update Funktion
"""
items = data.keys()
values = data.values()
if not limit == None:
limit = "LIMIT %s" % limit
else:
limit = ""
SQLcommand = "UPDATE %(table)s SET %(set)s WHERE %(where)s %(limit)s;" % {
"table" : dbconf["dbTablePrefix"] + table,
"set" : ",".join( [str(i)+"=%s" for i in items] ),
"where" : "%s='%s'" % (where[0],where[1]),
"limit" : limit
}
if len( values ) == 1:
self.cursor.execute( SQLcommand, (values[0],) )
else:
self.cursor.execute( SQLcommand, tuple( values ) )
Nur ich bekomme es mit dem Erben nicht wirklich hin...