summaryrefslogtreecommitdiffstats
path: root/db/__init__.py
blob: 3173d584d3d399e21d9418b8c4aa367465e61df5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import oursql

from config import db as dbconfig

conn = oursql.connect(host=dbconfig.host, db=dbconfig.database, user=dbconfig.user, passwd=dbconfig.password, autoreconnect=True)

def cursor():
	return conn.cursor(oursql.DictCursor)

def execute(cursor, sql, *values):
	cursor.execute(sql, values)

def query(cursor, sql, *values):
	execute(cursor, sql, *values)
	return cursor.fetchall()

class NoRowsException(Exception): pass
class MultipleRowsException(Exception): pass

def get(cursor, sql, *values):
	execute(cursor, sql, *values)
	result = cursor.fetchone()
	if result is None:
		raise NoRowsException('no rows returned', sql, values)
	if cursor.fetchone() is not None:
		raise MultipleRowsException('multiple results returned', sql, values)
	return result