@alex-lin-coder

Как решить проблему с запросом mysql специальной акции на python?

Приветствую Коллеги.

Помогите разобраться с проблемой.

Подключение к базе успешное. При попытке найти в таблице строку выводит исключение. Хотя в базе данная таблица существует и строка (varсhar).

При запуске скрипта выдает исключение:
raise Exception('ERROR: Action with UUID="D_PERCENT" not found').

Выкладываю часть кода скрипта (python 2.6.6):
from database import DB
from sys import exit
import datetime

db = DB("/etc/b.conf")

db.Connect()

# Ищем акцию по uuid
my_action = db.GetAction(act_uuid='D_PERCENT')
if not my_action:
    db.Disconnect()
    raise Exception('ERROR: Action with UUID="D_PERCENT" not found')


часть кода скрипта базы (python 2.6.6):
import MySQLdb
from datetime import datetime
......

def GetAction(self, act_id=None, act_name=None, act_uuid=None):
    """Поиск акции по ID, названию или коду - по первому, что не default"""
    sql = '''SELECT * FROM actions a WHERE a.`{0}` = %s'''
    if act_id:
        sql = sql.format('record_id')
        param = act_id
    elif act_name:
        sql = sql.format('name')
        param = act_name
    elif act_uuid:
        sql = sql.format('uuid')
        param = act_uuid
    else:
        raise Exception("DB.GetAction: No parameters defined")
    try:
        self.cursor.execute(sql, param)
        row = self.cursor.fetchone()
        if not row:
            return None
        result = {}
        for col in self.cursor.description:
            result[col[0].lower()] = row[self.cursor.description.index(col)]
        return result
    except:
        return None
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Fortop
Tech/Team lead
Начнём с того, что D_PERCENT это ни разу ни UUID.
соответственно с вероятностью близкой к 1 таких записей
act_uuid='D_PERCENT'

В таблице просто нет.
Судя по имеющимся полям это скорее всего act_name
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы