_mysql模块封装了与Mysql C API相对应的功能,MySQLdb又在_mysql的基础上进行了封装,为的是与Python DB API兼容(不清楚python的DB API标准是怎么样的,刚学python)。

在两者的文档中,都建议尽量使用MySQLdb。

直接上代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb

if __name__ == '__main__':
    #sql = 'insert into table_test values(...)' conn
= MySQLdb.connect(user='user', host='ip_addr', passwd='password',db='test') cur = conn.cursor() #cur.executemany(sql, params) cur.execute(sql) conn.commit() #记得提交,否则如果上述语句是更新语句,比如insert,只会在本地进行,服务器端不会得到更新 cur.close() conn.close()

有些网上的示例程序中并没有提到要执行conn.commit()

我实验的过程中发现,这句话是必要的,否则插入语句只是在本地进行,并没有更新到数据库

实验平台:python 2.4.3,[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] on linux2,

     mysql:5.5.24-0ubuntu0.12.04.1 (Ubuntu)

因为上述问题,纠结了很久,因为是在百度搜索中找到的示例程序,排名很靠前,就没有怀疑什么,以为是python模块的bug

后来读了MySQLdb和_mysql模块的文档,结合测试程序中出现的现象,想到有可能是没有提交的原因。

因为过程中很纠结,所以记录一下

 

 

posted on 2012-12-25 11:26  shosciation  阅读(171)  评论(0编辑  收藏  举报