在python3中使用pymysql代替mysqldb
例子:
import pymysql
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='***',
db='mysql')
cur = conn.cursor()#建立游标
cur.execute("SELECT * FROM user")
for r in cur.fetchall():
print(r)
#cur.close()
conn.close()#关闭数据库链接
并且,在当游标建立起来时,会隐形的建立一个事务,所以commit()提交所有操作,rollback()进行回滚。
例如插入:
#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 插入语句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
('Mac', 'Mohan', 20, 'M', 2000)
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
数据库查询操作:
- fetchone(): 该方法获取下一个查询结果集。结果集是一个对象(只取一个)
- fetchall(): 接收全部的返回结果行.
- rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。