我有这个代码使用MySQL将数据插入数据库。但是当我使用Python运行该代码时,没有错误。但是当我检查数据库时,没有插入数据。有没有人可以帮助我?我会很感激。 :)
这是代码:
import MySQLdb
db=MySQLdb.connect(host="localhost", user="root", passwd="", db="try")
cursor=db.cursor()
insert="INSERT INTO `try`.`try` (`nomor`, `nama`) VALUES (NULL, 'bismillah')"
cursor.execute(insert)
答案 0 :(得分:1)
你在任何地方都没有COMMIT
。因此,如果未启用自动提交,那么您所做的就是创建一个事务,如果以后提交,将插入此行。
由于您未在任何地方完成SET AUTOCOMMIT
,因此自动提交是否开启取决于您创建数据库的方式。至少有一些存储类型(特别是InnoDB),您可以在创建时更改默认值,并且,因为您经常希望使用这些存储类型,GUI设计工具禁用自动提交,或者您复制和粘贴的示例代码,或者您可能已经完成的任何操作。此外,提供默认值的服务器变量本身可以在服务器启动/配置时设置为不同的值。 (见System Server Variables。)
如果您想确保启用自动提交,只需在任何其他语句之前执行SET autocommit=1
。
如果要查明自动提交是否已启用,请执行SHOW VARIABLES
。 (如果它已被停用,您可以尝试SHOW GLOBAL VARIABLES LIKE 'autocommit'
和SHOW SESSION VARIABLES like 'autocommit'
查看您已将其禁用的上下文。)
答案 1 :(得分:0)
如果你不能插入mysql,有几种方法可以解决它:
1:检查日志
2:检查表的结构,对于nomor
或其他字段,它可能不能为空
3:最后一个,当使用程序插入mysqldb时,需要在关闭连接之前提交。对于这里:db.commit()