Почему этот запрос не работает с Python на SQL? - PullRequest
0 голосов
/ 22 декабря 2018

Я новичок в кодировании и базах данных, я не могу заставить запрос работать, если я пишу его длинной рукой, но у меня много работы и я хочу выполнить ее в функции, но не могу заставить ее работать, она возвращает параметрыошибка

import  mysql.connector

def connection_check_1(query, value):

    mydb = mysql.connector.connect(
        host="******",
        user="*****",
        passwd="*****",
        database="****"
    )

    mycursor = mydb.cursor()
    mycursor.execute(query, (value))
    myresult = mycursor.fetchall()
    mydb.close()
    return myresult

value = "sheep"
query = 'select inlicence from licence where animal = %s'
myresult = connection_check_1(query, value)
print(myresult)

Вот таблица SQL, которая у меня есть

create table licence 
(
    animal varchar (20) primary key,
    inlicence int (1)
);

Это ошибка, которую я получаю

Traceback (последний последний вызов):
Файл "*******************", строка 20, в
myresult = connection_check_1 (запрос, значение)
Файл "******************** ", строка 13, в connection_check_1
mycursor.execute (запрос, (значение))
Файл" ******************************************** 88 ", строка 246, в выполни
подготовлено = self._cnx.prepare_for_mysql (params)
Файл "/ home / kev / PycharmProjects / test bed / venv / lib / python3.5 / site-packages / mysql / connector / connection_cext.py", строка 535, в prepare_for_mysql
повышениеValueError («Не удалось обработать параметры»)
ValueError: Не удалось обработать параметры

Я попытался изменить способ запросанаписано, изменив его на fetchall().

1 Ответ

0 голосов
/ 22 декабря 2018

Завершение значения с помощью () не превращает его в кортеж.Вы, вероятно, хотели добавить туда запятую:

mycursor.execute(query, (value,))
# Creates a one-element tuple-^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...