Нужно было переделать с sqlite на mysql запросы в python, для sqlite всё работало, ? менял на %s, не помогало. использую библиотеку mysql-connector-python
def write_groups(self,groups):
groups_list = [[i[0],i[1]] for i in groups]
#try:
self.cursor.executemany("INSERT INTO groups (name,image) VALUES (?,?)",groups_list)
self.mysql_connection.commit()
print("успешно")
exit()
#except:
#pass
В случае этого запроса parent_id остается null, поэтому него не использую, пробовал писать, в запрос его как ,None значение, не помогло
Код таблицы баз данных
CREATE TABLE `groups` (
`id_group` INTEGER NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) COLLATE utf8mb4_general_ci DEFAULT NULL,
`image` BLOB,
`parent_id` INTEGER DEFAULT NULL,
PRIMARY KEY USING BTREE (`id_group`)
) ENGINE=InnoDB
ROW_FORMAT=DYNAMIC CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'
;
при строке
self.cursor.executemany("INSERT INTO groups (name,image) VALUES (%s,%s)",groups_list)
ошибка
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups (group_name,image) VALUES ('asdasd','?\??\?\0JFIF\0\0`\0`\0\0??\0<CRE' at line 1
а при строке
self.cursor.executemany("INSERT INTO groups (name,image) VALUES (?,?)",groups_list)
Код ошибки такой:
mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement