mysql .connector.errors.ProgrammingError: Не все параметры были использованы в операторе SQL. Я пытаюсь вставить весь список как один - PullRequest
0 голосов
/ 07 марта 2020

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

data = ['Unknown', 'Saqlain', 'fahad', 'Unknown']

mycursor = mydb.cursor()

Date_raw = datetime.datetime.now()
Date = str(Date_raw.strftime("%d%A%b"))

mycursor.execute(f"CREATE TABLE march ( {Date} VARCHAR(255))")
sqlfor = f"INSERT INTO march ({Date}) VALUES(%s)"


mycursor.execute(sqlfor, data)
mydb.commit()``

Работает так, но хранит все имена в одном столбце, а я не хочу, чтобы все имена были в разных столбцах. Также мои данные являются Dynami c, поэтому список будет меняться каждый раз

mycursor = mydb.cursor()
Date_raw = datetime.datetime.now()
Date = str(Date_raw.strftime("%d%A%b"))

mycursor.execute(f"CREATE TABLE march ( {Date} VARCHAR(255))")
sqlfor = f"INSERT INTO march ({Date}) VALUE(%s %s %s %s)"

mycursor.execute(sqlfor, data)
mydb.commit()

Ответы [ 2 ]

0 голосов
/ 08 марта 2020

Просто используйте executemany, который передает последовательность параметров в вызов выполнения:

mycursor.executemany(sqlfor, [(d,) for d in data])
0 голосов
/ 07 марта 2020

объявляют @i INT (11);

SET @ i = 1;

data = ['Unknown', 'Saqlain', 'fahad', 'Unknown']

mycursor = mydb.cursor ()

Date_raw = datetime.datetime.now ()

Date = str (Date_raw.strftime ("% d% A% b"))

mycursor.execute (f "CREATE TABLE march ({Date} VARCHAR (255))")

sqlfor = f "INSERT INTO march ({Date}) VALUES (% s)"

WHILE ((ВЫБЕРИТЕ ELT (@ i, данные)) НЕ НУЛЬ) Начать

mycursor.execute (sqlfor, (ВЫБРАТЬ ELT (@ i, данные));

SET @i: = @ i + 1;

mydb.commit ();

END; END WHILE; `

SELECT ELT (1, ['100 ',' 101 ']) возвращает' 100 '.ELT () возвращает ноль, когда индекс выходит за пределы

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