pymsql模块
pymsql模块
-
补充 cmd 常用命令
- pip —V
查看当前pip版本
- pip list
查看当前Python解释器环境中安装的第三方包
- pip —V
-
先cmd中下载pip install pymysql
-
sql注入问题
- sql语句不能自己拼接,应该使用模块的方法来拼接。
-
在pycharm中:
-
基本步骤
-
# 1.导入数据库 import pymysql name = input("请输入账户:") pwd = input("请输入密码:") # 2.连接数据库 conn = pymysql.connect( host='127.0.0.1', # ip地址 port=3306, # 一般都是3306 user='root', # 账户 password='123', # 密码 database='day43', # 库名 charset='utf8' # 不能使用- ) # 3.获取光标 cursor = conn.cursor() # 4. 执行sql语句 sql = "select * from userinfo where username='%s' and password ='%s'" # 验证 sq2 = "insert into userinfo(username,password) values (%s,%s)" # 增 sq3 = "delete from userifo where username = %s" # 删 sq4 = "update userinfo set password = %s where username= %s" # 改 ret = cursor.execute(sql, [name, pwd]) # 5.涉及操作数据库的 一定要提交 conn.commit() # 6.关闭 cursor.close() conn.close()
查
mv = cursor.fetchall() # 查询全部 mv = cursor.fetchone() # 查询一行 mv = cursor.fetchmany(2) # 查询多行
-
返回的数据类型
-
获取光标conn.cursor() 默认返回的是元组数据类型
-
如果需要获取以字典的形式
-
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
-
-
常用的方法
- fetchall() 获取全部信息
- fetchall() 每一次只获取一行信息,最后没有信息时返回None
- fetchmany(size) 获取size行信息
-
-
获取刚插入数据的id,运用在多表关联
- last_id = cursor.lastowid
-
回滚实物,运用于语法错误中
-
# 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" username = "Alex" age = 18 try: # 执行SQL语句 cursor.execute(sql, [username, age]) # 提交事务 conn.commit() # 提交之后,获取刚插入的数据的ID last_id = cursor.lastrowid except Exception as e: 1,# 有异常,回滚事务 conn.rollback() cursor.close() conn.close()
-
-
-
进阶(了解)
-
# 可以获取指定数量的数据 cursor.fetchmany(3) # 光标按最开始的位置向下移动1 cursor.scroll(1, mode="absolute") # 光标按照相对位置(当前位置)移动1 cursor.scroll(1, mode="relative")
-
-