Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  1. import mysql
  2.  
  3. __author__ = 'Alejandro'
  4. import mysql.connector
  5. from mysql.connector import errorcode
  6.  
  7. class Mysql(object):
  8. __instance = None
  9.  
  10. __host = None
  11. __user = None
  12. __password = None
  13. __database = None
  14.  
  15. __session = None
  16. __connection = None
  17.  
  18. def __new__(cls, *args, **kwargs):
  19. if not cls.__instance:
  20. cls.__instance = super(Mysql, cls).__new__(cls, *args, **kwargs)
  21. return cls.__instance
  22.  
  23. def __init__(self, host='localhost', user='root', password='', database=''):
  24. self.__host = host
  25. self.__user = user
  26. self.__password = password
  27. self.__database = database
  28.  
  29. #Open connection with database
  30. def _open(self):
  31. try:
  32. cnx = mysql.connector.connect(host=self.__host, user=self.__user, password=self.__password,
  33. database=self.__database)
  34. self.__connection = cnx
  35. self.__session = cnx.cursor()
  36. except mysql.connector.Error as err:
  37. if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
  38. print 'Something is wrong with your user name or password'
  39. elif err.errno == errorcode.ER_BAD_DB_ERROR:
  40. print 'Database does not exists'
  41. else:
  42. print err
  43.  
  44. def _close(self):
  45. self.__session.close()
  46. self.__connection.close()
  47.  
  48. def insert(self, table, *args, **kwargs):
  49. values = None
  50. query = "INSERT INTO %s " % table
  51. if kwargs:
  52. keys = kwargs.keys()
  53. values = kwargs.values()
  54. query += "(" + ",".join(["`%s`"]*len(keys)) % tuple(keys) + ") VALUES(" + ",".join(["%s"]*len(values)) + ")"
  55. elif args:
  56. values = args
  57. query += " VALUES(" + ",".join(["%s"]*len(values)) + ")"
  58. self._open()
  59. self.__session.execute(query, values)
  60. self.__connection.commit()
  61. self._close()
  62. return self.__session.lastrowid
  63.  
  64. def select(self, table, where=None, *args):
  65. result = None
  66. query = "SELECT "
  67. keys = args
  68. query = "SELECT `" + "`,`".join(keys) + "` FROM " + table
  69. if where:
  70. query += " WHERE %" % where
  71. self._open()
  72. self.__session.execute(query)
  73. self.__connection.commit()
  74. for result in self.__session.stored_results():
  75. result = result.fetchall()
  76. self._close()
  77. return result
  78.  
  79. def update(self, table, index, **kwargs):
  80. query = "UPDATE %s SET" % table
  81. keys = kwargs.keys()
  82. values = kwargs.values()
  83. l = len(keys) - 1
  84. for i, key in enumerate(keys):
  85. query += "`"+key+"`=%s"
  86. if i < l:
  87. query += ","
  88. query += " WHERE index=%d" % index
  89. self._open()
  90. self.__session.execute(query, values)
  91. self.__connection.commit()
  92. self._close()
  93.  
  94. def delete(self, table, index):
  95. query = "DELETE FROM %s WHERE uuid=%d" % (table, index)
  96. self._open()
  97. self.__session.execute(query)
  98. self.__connection.commit()
  99. self._close()
  100.  
  101. def call_store_procedure(self, name, *args):
  102. result_sp = None
  103. self._open()
  104. self.__session.callproc(name, args)
  105. self.__connection.commit()
  106. for result in self.__session.stored_results():
  107. result_sp = result.fetchall()
  108. self._close()
  109. return result_sp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement