Python mysql-连接器多插入不工作?

Python mysql-connector multi insert not working?

我刚开始为 Python 使用 Mysql 连接器库,我似乎 运行 遇到了一个我无法解决的问题。

我 Python 动态生成要在 MySQl 数据库上执行的插入语句。

我将它们放在一个字符串中,然后我在一个 cusrsor.execute() 语句中一起执行每个 n 但是由于某种原因,当我检查数据库和 table 时,新行无处可寻被发现。

我什至只将两个插入语句一起尝试过,即使我调用执行、调用提交然后按顺序关闭游标和连接,它们仍然没有持久保存到数据库中。

如果我在执行命令中只有一个插入语句并且我删除了 multi 标志那么它工作正常。

有谁知道为什么会这样?

示例代码:

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()

调用此代码后,没有错误,但 table 中没有新行显示。

你应该尝试使用 executemany 而不是 execute 和 multi 标志,它通常更容易实现。

此外,我建议您改用 PyMySQL,它有非常完整的文档,根据我的经验,'out of the box' 比 mysql 连接器库更好用。