1. 安装pymysql

使用PyCharm安装:点击file >> setting >> project,在当前工程的虚拟环境下安装
在这里插入图片描述
使用pip命令安装:pip3 install pymysql==1.0.2

2. 导入pymysql

import pymysql

3. 1查询数据库操作

	# 创建连接对象
	conn = pymysql.connect(host='localhost', user='root', passwd='mysql',
	                         db='insight', port=3306, charset='utf8')
	# 获取游标
	cursor = conn.cursor()
	# 准备sql,三引号表示换行
	sql = '''
	       SELECT id, stu_name, gender, age, address, phone, others 
	       FROM `students` 
	       WHERE id = '1';
	       '''
	# 执行sql
	cursor.execute(sql)
	# 获取查询结果
	result = cursor.fetchall()
	print(result )
	
	# 关闭游标、连接
	cursor.close()
	conn.close()

3.2 修改数据库操作

    # 创建连接对象
    conn = pymysql.connect(host='localhost', user='root', passwd='mysql',
                           db='insight', port=3306, charset='utf8')
    # 获取游标
    cursor = conn.cursor()
    # 准备sql
    sql = "delete FROM students where id='1'";

    try:
        # 执行sql,并提交
        cursor.execute(sql)
        conn.commit()
    except Exception as e:
        # 回滚操作,对修改的数据进行撤销
        conn.rollback()
        print("数据库修改出错,原因为:", e)
    finally:
        # 关闭游标、连接
        cursor.close()
        conn.close()

3.3 防止sql注入

sql注入:用户提交带有恶意的数据与sql语句进行字符串方式的拼接,影响sql语句的语义,产生数据泄露的现象。
防止措施:sql语句参数化。

 	# 一个参数传值,其中 %s 不能加单引号
    sql = "SELECT * FROM students WHERE stu_name = %s;"
    cursor.execute(sql,("xx",))

    # 多参数传值
    sql = "insert into students(id, stu_name) values (%s, %s);"
    cursor.execute(sql, ["1", "xx"])
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐