Python mysql-connector multi insert not working?
Question: I just started using the Mysql Connector library for Python and I seem to be
running into an issue I can't get my head around.

I have Python dynamically generate Insert statements to be executed on MySQl
database.

I batch them together in one string and then I execute every n together in the
one `cusrsor.execute()` statement however for some reason when I check the DB
and table, the new rows are nowhere to be found.

I tried it with even just two insert statements together and they still didn't
get persisted to the DB even though I call execute, call a commit and then
close the cursor and connection in that order.

If I have just one insert statement in the execute command and I remove the
multi flag then it works fine.

Does anyone know why this could be happening?

Sample code:

    
    
    from mysql import connector
    my_sql_connection = connector.connect(user='user', password='pass',
                                                  host='hostname',
                                                  database='db')
    mysql_cursor = my_sql_connection.cursor()
    
    statement = "Insert into table (col) values (1); Insert into table (col) values (2);"
    
    mysql_cursor.execute(statement, multi=True)
    my_sql_connection.commit()
    mysql_cursor.close()
    my_sql_connection.close()
    

After this code is called, there are no errors however no new rows show up in
the table.


Answer: You should try using [executemany](https://dev.mysql.com/doc/connector-
python/en/connector-python-api-mysqlcursor-executemany.html) instead of
`execute` with the multi flag, it's generally much simpler to implement.

Also,I would recommend you switch to
[PyMySQL](https://github.com/PyMySQL/PyMySQL), it has a very complete
documentation and from my experience works much better 'out of the box' than
the mysql connector library.

