Python mysql-connector多插入不起作用?

时间:2015-11-16 21:48:56

标签: python mysql mysql-python

我刚开始使用Python的Mysql Connector库,我似乎遇到了一个我无法理解的问题。

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

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

我尝试了即使只有两个插入语句,它们仍然没有持久保存到DB,即使我调用execute,调用commit然后按顺序关闭游标和连接。

如果我在execute命令中只有一个insert语句,并且我删除了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()

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

1 个答案:

答案 0 :(得分:4)

您应该尝试使用executemany代替execute多标志,它通常更容易实现。

此外,我建议您切换到PyMySQL,它有一个非常完整的文档,根据我的经验,工作得更好,开箱即用'比mysql连接器库。