asd

Python code posted
created at 06 May 12:01, updated at 08 May 02:52

Edit | Back
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# -*- coding: utf-8 -*-
""" Обертка для класса MySQLdb.connection.
    Служит для упрощения рутинных операций с базой 

"""

from MySQLdb import connection, escape_string

class AdvancedConnection(connection):
  
  def query(self, *args, **kwargs):
    """ Выполняет запрос в одно действие. Возвращает курсор """
    cursor = self.cursor()
    cursor.execute(*args, **kwargs)
    return cursor

  def insert(self, table, data):
    """ Выполняет INSERT в таблицу table, используя 
        в качестве имен полей ключи словаря data """
    
    fields_name = []
    fileds_value = []
    for k,v in data.items():
      fields_name.append("`%s`" % str(k))
      fields_value.append("'%s'" % escape_string(str(v)))
    
    query = "INSERT INTO `%s` (%s) values (%s)" % (table, ",".join(fields_name), ",".join(fields_value))
    self.query(query)
  
  def update(self, table, data, where_clause=""):
    """ Выполняет UPDATE в таблице table, используя 
        в качестве имен полей ключи словаря data. Условие WHERE может быть задано в where_clause.
        Expl: update("sometable", update_data, "`MyKey` = 31337") """
    
    fields_list = []
    for k,v in data.items():
      fields_list.append("`%s` = '%s'" % (str(k), escape_string(str(v))))
    
    if where_clause:  where_clause = "WHERE %s" % where_clause
    
    query = "UPDATE `%s` SET %s %s" % (table, ", ".join(fields_list), where_clause)
    self.query(query)
1.6 KB in 3 ms with coderay