pymysql

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()

猜你喜欢

转载自www.cnblogs.com/jsp0/p/8953363.html