PyMySQL是一个纯Python写的MySQL客户端,它的目标是替代MySQLdb,可以在CPython、PyPy、IronPython和Jython环境下运行。
-
commit() 提交
-
rollback() 回滚
cursor用来执行命令的方法:
-
execute(self, query, args) 执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
-
executemany(self, query, args) 执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
-
nextset(self) 移动到下一个结果集
cursor用来接收返回值的方法:
-
fetchall(self) 接收全部的返回结果行.
-
fetchone(self) 返回一条结果行.
-
rowcount 这是一个只读属性,并返回执行execute() 方法后影响的行数。
import pymysql
conn = pymysql.connect{
'host': '127.0.0.1',
'port': 3306,
'user': 'root',
'passwd': 'root',
'charset':'utf8mb4',
'cursorclass':pymysql.cursors.DictCursor #默认查询结果都是返回tuple,通过使用不同的游标可以改变输出格式,这里传递一个cursors.DictCursor参数返回字段类型
}
cursor = conn.cursor() # 使用cursor()方法获取操作游标
# 查询一条记录
result = cursor.fetchone()
print (result)
print 'id: %s,name: %s' %(result[0],result[1])
# 查询多条记录
results = cursor.fetchmany(5)
for r in results:
print (r)
# 更新记录
cursor.execute('UPDATE %s SET name = "%s" WHERE id = %s' %(TABLE_NAME,'Jack',1))
# 如果没有设置自动提交事务,则这里需要手动提交一次
# 关闭游标连接
cursor.close()
# 关闭数据库连接
conn.close()
实例:
import pymysql
class Con_DB(object):
def __init__(self):
self.conn=pymysql.connect(
host='172.16.16.5',
port=3306,
user='bb',
passwd='123456',
db='bbtest',
charset='utf8',
)
self.cursor=self.conn.cursor()
def excute(self,sql):
self.cursor.execute(sql)
self.conn.commit()
self.cursor.execute(sql)
data=self.cursor.fetchall()
return data
def close(self):
if self.cursor and self.conn:
self.cursor.close()
self.conn.close()
return True
if __name__=='__main__':
db = Con_DB()
sql = "SELECT Fenquiry_sku_id FROM t_bb_enquiry_sku where Fenquiry_id='IIS157113425004906'"
sql_data=db.excute(sql)
print(sql_data)