我将重新迭代使用MySQLdb或任何其他包连接python2/3的sql连接的每个人的最佳实践
(以下模拟运行假设您的sql数据库中有一个名为tablename的表。它有4个名为field1、field2、field3、field4的列/字段。
如果您的连接是本地的(同一台机器),那么它是127.0.0.1,也称为“localhost”。
这个过程是简单的7个步骤创建连接
创建光标
创建查询字符串
执行查询
提交查询
关闭光标
关闭连接
下面是一个简单的逐步模拟运行mydb = MySQLdb.connect(host=host, user=user, passwd=passwd, db=database, charset="utf8")
cursor = mydb.cursor()
query = "INSERT INTO tablename (text_for_field1, text_for_field2, text_for_field3, text_for_field4) VALUES (%s, %s, %s, %s)"
cursor.execute(query, (field1, field2, field3, field4))
mydb.commit()
cursor.close()
mydb.close()
连接和光标不同。
连接处于SQL级别,而游标可以被视为数据元素。在一个连接中,同一数据上可以有多个游标。同一台计算机上同一数据有多个连接是不常见的。
已经描述了更多here
“游标范式不是Python特有的,而是数据库本身的一种常见数据结构。
根据底层实现,可能会生成多个游标,共享到数据库的同一连接。关闭光标可以释放与查询相关的资源,包括从未从数据库中提取(或提取但未使用)的任何结果,但不会消除与数据库本身的连接,这样您就可以在同一数据库上获取新光标,而无需再次验证。”