pymysql 的安装:
方法一:
1.打开本地dos窗口: 2.输入:cmd 3.输入:pip install pymysql
方法2:
1.打开python安装目录:找到\Scripts\ 这个文件件 打开后有: easy_install.exe easy_install-3.6.exe pip.exe pip3.6.exe pip3.exe 看到这样几个应用程序后就说明找对了 2.在Scripts 这个文件中 按住键盘Shift + 鼠标右键 看到在此处打开命令窗后: 输入:pip3. install pymysql 进行安装 查看当前存在模块: pip3 -list 有哪些安装好的模块
链接 :pymysql
1.基本使用:
# 导入pymysql模块: import pymysql # 连接database: conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名,charset=“utf8”)
#得到数据库的光标:
cursor = conn.cursor()
# 定义要执行的SQL语句 sql = """
# 执行上面的SQL语句
cursor.execute(sql)
# 关闭光标对象 cursor.close() # 关闭数据库连接 conn.close()
返回字典格式数据内容:
# 得到一个可以执行SQL语句并且将结果作为字典返回的游标 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 执行SQL语句 cursor.execute(sql)
python-mysql增删改查
增:
#获取一个光标 cursor =conn.cursor() #所要执行的插入sql语句 sql = "insert into userinfo(name,pwd) VALUES (%s,%s)" name="吉泽明步" pwd = "3714" #拼接并执行sql语句 cursor.execute(sql,[name,pwd]) #提交写入数据 conn.commit() #关闭连接 cursor.close() conn.close()
注意:当写入数据的时候VALUES中尽量不要直接添加写入的数据,如果客户登录时候需要对用户名密码判断
如果有这样一条语句:select * from userinfo where name =‘%s’ and passwd='%s';
这样会引入SQL注入问题 入输入账号密码时候
name: alexd “” -- or 1=1 时候账号密码无论是什么都会登录成功
插入数据失败回滚:
在同事‘
import pymysql conn =pymysql.connect(host='127.0.0.1',port=3306,user="root",password ="admink",database="db1",charset='utf8') #获取一个光标 cursor =conn.cursor() sql1 = "insert into userinfo(user, pwd) VALUES (%s, %s);"
sql2 = "insert into userinfo (user) values(%s)"
user = "Alex" pwd ="123"
book_tite = 'alex da shuaibi '
try: # 执行SQL语句 cursor.execute(sql1, [user, pwd])
cursor.execute(sql2) #不给sql2语句传值,就执行不了
# 提交事务 conn.commit() except Exception as e: # 有异常,回滚事务 conn.rollback() cursor.close() conn.close()
获取插入数据的ID(关联操作时会用到
! 其实就是 2个数据表同事提交,把其中没问题的语句直接执行,有错误的执行语句进行回滚
import pymysql
conn =pymysql.connect(host='127.0.0.1',port=3306,user="root",password ="admink",database="db1",charset='utf8')
#获取一个光标
cursor =conn.cursor()
sql1 = "insert into userinfo(user, pwd) VALUES (%s, %s);"
sql2 = "insert into userinfo (user) values(%s)"
user = "Alex"
pwd ="123"
book_tite = 'alex da shuaibi '
try:
# 执行SQL语句
cursor.execute(sql1, [user, pwd])
cursor.execute(sql2) #不给sql2语句传值,就执行不了
# 提交事务 conn.commit()
#获取最后一条插入成功的内容
last_id = cursor.lastrowid
except Exception as e: # 有异常,回滚事务
conn.rollback()
cursor.close()
conn.close()
批量执行:
sql = "insert into userinfo(name,pwd) VALUES (%s,%s);"
date ={
("高材生","youqian"),
("changjiang","huanghe"),
("alex","dashuaibi")
}
cursor.executemany(sql,date)
#提交写入数据
conn.commit()
#关闭连接
cursor.close()
conn.close()