#!/usr/bin/python

DB = "test"
HOST = "localhost"
USER = "root"
PASS = "******"

import MySQLdb
import string

def _db_login(relogin = 0):
  """Login to the database
  """

  global DB_CONN
  
  if relogin:
    DB_CONN = MySQLdb.connect(db=DB, host=HOST,user=USER, passwd=PASS)
    return DB_CONN
  else:
    try:
      d = DB_CONN
      return d
    except NameError:
      DB_CONN = MySQLdb.connect(db=DB, host=HOST,user=USER, passwd=PASS)
      return DB_CONN

def run_sql(sql, param=None, n=0, with_desc=0):
    """Runs SQL on the server and returns result
    """

    db = _db_login()

    if param:
      param = tuple(param)

    try:
      cur = db.cursor()
      rc = cur.execute(sql, param)
    except:
      db = _db_login(relogin = 1)
      cur = db.cursor()
      rc = cur.execute(sql, param)

    if string.upper(string.split(sql)[0]) in ("SELECT", "SHOW", "DESC", "DESCRIBE"):
      if n:
        recset = cur.fetchmany(n)
      else:
        recset = cur.fetchall()

      if with_desc:
        return recset, cur.description
      else:
        return recset
    else:
      return rc