Использование хранимых процедур во Flask - PullRequest
0 голосов
/ 08 мая 2018

Я очень новичок в программировании на Python. Я пытаюсь реализовать процедуру сохранения в колбе.

Это часть кода, откуда я вызываю хранимую процедуру.

        cursor.execute(insertquery)
        database.commit()
        cursor2.execute("select id from users where userid='"+username1+"'")
        data2=cursor2.fetchall()
        dictionary1=[dict(user=row[0]) for row in data2]
        for data in dictionary1:
            user_store=int((data.get('user')))
        cursor2.callproc('insertPrediction',user_store)
        database.commit()
        database.close()

и это хранимая процедура

DROP PROCEDURE IF EXISTS `S3UploadDB`.`insertPrediction`;
PROCEDURE `S3UploadDB`.`insertPrediction`(IN id int(20))
BEGIN
   INSERT INTO prediction(id,matchno,winner,points)
        VALUES (id,1,'na',-500);
END;

даже когда я вызываю процедуру из жабы, она работает нормально и данные обновляются но когда-либо это вызывается из кода Python

TypeError: 'int' object is not iterable

Ошибка в этой строке кода

cursor2.callproc('insertPrediction',user_store)

Я преобразовал значение в INT, прежде чем передать его, поскольку входные данные для хранимой процедуры имеют тип int. Я использую MySQL Пожалуйста, помогите мне с этой ошибкой.

1 Ответ

0 голосов
/ 08 мая 2018

callproc требует последовательности аргументов, таких как список или кортеж, даже если есть только один аргумент. Использование:

cursor2.callproc('insertPrediction', [user_store])

Ссылка на документы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...