MySQLdb modifizieren...
Verfasst: Dienstag 21. Juni 2005, 19:21
Ich würde gern meine angefangene SQL-Geschichte http://www.python-forum.de/viewtopic.php?t=3175 richtig erweitern.
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:
Nur ich bekomme es mit dem Erben nicht wirklich hin...
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...