aboutsummaryrefslogtreecommitdiff
path: root/cgi/database.py
diff options
context:
space:
mode:
Diffstat (limited to 'cgi/database.py')
-rw-r--r--cgi/database.py46
1 files changed, 24 insertions, 22 deletions
diff --git a/cgi/database.py b/cgi/database.py
index 9b2c1e7..819c253 100644
--- a/cgi/database.py
+++ b/cgi/database.py
@@ -1,7 +1,8 @@
# coding=utf-8
import threading
-import _mysql
+import MySQLdb
+import MySQLdb.cursors
from settings import Settings
database_lock = threading.Lock()
@@ -19,57 +20,58 @@ except ImportError:
def OpenDb():
if Settings._.CONN is None:
- Settings._.CONN = _mysql.connect(host=Settings.DATABASE_HOST,
- user=Settings.DATABASE_USERNAME,
- passwd=Settings.DATABASE_PASSWORD,
- db=Settings.DATABASE_DB)
+ Settings._.CONN = MySQLdb.connect(host=Settings.DATABASE_HOST,
+ user=Settings.DATABASE_USERNAME,
+ passwd=Settings.DATABASE_PASSWORD,
+ db=Settings.DATABASE_DB,
+ cursorclass=MySQLdb.cursors.SSDictCursor)
-def FetchAll(query, method=1):
+def FetchAll(query, params=None):
"""
Query and fetch all results as a list
"""
db = Settings._.CONN
- db.query(query)
- r = db.use_result()
- return r.fetch_row(0, method)
+ c = db.cursor()
+ c.execute(query, params)
+ return c.fetchall()
-def FetchOne(query, method=1):
+def FetchOne(query, params=None):
"""
Query and fetch only the first result
"""
db = Settings._.CONN
- db.query(query)
- r = db.use_result()
- try:
- return r.fetch_row(1, method)[0]
- except:
- return None
+ c = db.cursor()
+ c.execute(query, params)
+ return c.fetchone()
-def UpdateDb(query):
+def UpdateDb(query, params=None):
"""
Update the DB (UPDATE/DELETE) and return # of affected rows
"""
db = Settings._.CONN
- db.query(query)
- return db.affected_rows()
+ c = db.cursor()
+ c.execute(query, params)
+ return c.rowcount
-def InsertDb(query):
+def InsertDb(query, params=None):
"""
Insert into the DB and return the primary key of new row
"""
db = Settings._.CONN
- db.query(query)
- return db.insert_id()
+ c = db.cursor()
+ c.execute(query, params)
+ return c.lastrowid
def CloseDb():
if Settings._.CONN is not None:
Settings._.CONN.close()
+ Settings._.CONN = None