выполнить команду sql с помощью курсора - python с несколькими переменными - PullRequest
0 голосов
/ 04 апреля 2020

Я использую сценарии в Python для выполнения Sql команд (с курсором)

для выполнения sql команды с одной переменной, я использую эту функцию:

def Execute (command,variable):
    global myresult , mycursor
    mycursor = mydb.cursor()
    mycursor.execute(command,variable)
    myresult = mycursor.fetchall()
    return myresult

пример:

Subnet = Execute("SELECT subnet FROM network WHERE mykey = %s", Site)

но я не могу найти функцию, которая позволяет мне передавать несколько переменных (2, 3 ..), я пробовал с этой функцией, но она не работает:

def Execute (command,variable1,variable2):
    global myresult , mycursor
    mycursor = mydb.cursor()
    mycursor.execute(command,variable1,variable2)
    myresult = mycursor.fetchall()
    return myresult

Я пытаюсь сделать: Subnet = Execute("SELECT subnet FROM network WHERE mykey = %s AND ip = %s ", Site , Adress)

1 Ответ

0 голосов
/ 04 апреля 2020

execute ожидает, что второй аргумент будет набором значений для привязки, и вы передали два отдельных аргумента. Элегантный способ достижения желаемого - использование позиционных аргументов:

def Execute (command, *args):
    global myresult, mycursor
    mycursor = mydb.cursor()
    mycursor.execute(command, args)
    myresult = mycursor.fetchall()
    return myresult
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...