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 连接器库更好用。
我刚开始为 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 连接器库更好用。