# -*- coding:utf-8 -*-
import MySQLdb
import pgdb
class Init:
def __init__(self, db_driver, db_host, db_user, db_pass, db_name):
if db_driver == 'mysql':
self._db = SKY_MySQL(db_host, db_user, db_pass, db_name)
elif db_driver == 'pgsql':
self._db = SKY_PostgreSQL(db_host, db_user, db_pass, db_name)
def commit(self):
self._db.commit()
def rollback(self):
self._db.rollback()
def query(self, sql):
self._db.query(sql)
def getSelect(self, sql):
self.query(sql)
return self._db.getSelect(sql)
def setInsert(self, table_name, field_values):
field_name = ''
filed_value = ''
for data in field_values.items():
field_name += data[0]+","
filed_value += "'"+MySQLdb.escape_string(str(data[1]))+"',"
field_name = field_name[0:-1]
filed_value = filed_value[0:-1]
sql = 'insert into '+table_name+'('+field_name+') values('+filed_value+')'
return self._db.setInsert(sql)
def setUpdate(self, table_name, field_values, wheres=''):
sql_update = ''
for data in field_values.items():
sql_update += data[0]+"='"+MySQLdb.escape_string(str(data[1]))+"',"
sql_update = sql_update[0:-1]
if wheres != '':
wheres = ' where '+wheres
sql = 'update '+table_name+' set '+sql_update+wheres
return self._db.setUpdate(sql)
def setDelete(self, table_name, wheres=''):
if wheres != '':
wheres = ' where '+wheres
sql = 'delete from '+table_name+wheres
return self._db.setDelete(sql)
class SKY_MySQL:
def __init__(self, db_host, db_user, db_pass, db_name):
try:
self.conn = MySQLdb.connect (host=db_host, user=db_user, passwd=db_pass, db=db_name)
self.DictCursor = MySQLdb.cursors.DictCursor(self.conn)
except Exception, e:
raise SystemExit('MySQL connect error : '+db_host)
def __del__(self):
try:
self.DictCursor.close()
self.conn.close()
except Exception, e:
pass
def commit(self):
self.conn.commit()
def rollback(self):
self.conn.rollback()
def query(self, sql):
try:
self.DictCursor.execute(sql)
self.commit()
except Exception, e:
raise SystemExit('MySQL query error : '+sql)
def getSelect(self, sql):
return self.DictCursor.fetchall()
def setInsert(self, sql):
self.query(sql)
return self.DictCursor.lastrowid
def setUpdate(self, sql):
self.query(sql)
def setDelete(self, sql):
self.query(sql)
class SKY_PostgreSQL:
def __init__(self, db_host, db_user, db_pass, db_name):
try:
self.conn = pgdb.connect(db_host+':'+db_name+':'+db_user+':'+db_pass)
self.cursor = self.conn.cursor()
except Exception, e:
raise SystemExit('PostgreSQL connect error : '+db_host)
def __del__(self):
try:
self.cursor.close()
self.conn.close()
except Exception, e:
pass
def commit(self):
self.conn.commit()
def rollback(self):
self.conn.rollback()
def query(self, sql):
try:
self.cursor.execute(sql)
self.commit()
except Exception, e:
raise SystemExit('PostgreSQL query error : '+sql)
def getSelect(self, sql):
return self.cursor.fetchall()
def setInsert(self, sql):
self.query(sql)
return self.cursor.rowcount
def setUpdate(self, sql):
self.query(sql)
def setDelete(self, sql):
self.query(sql)
0 개의 댓글:
댓글 쓰기