码迷,mamicode.com
首页 > 数据库 > 详细

pymysql

时间:2018-05-01 23:55:14      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:返回   注入   字符串   获得   很多   ora   cal   under   values   

import pymysql
user= input(‘用户名:>>‘).strip()
pwd= input(‘密码:>>‘).strip()

#先链接,拿到游标
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘123456‘,
             database=‘day47‘,charset=‘utf8‘)
cursor=conn.cursor() #拿到游标,即mysql >
#执行sql
sql=‘select * from user where user="%s" and password="%s";‘%(user,pwd)
print(sql) #注意%s需要加双引号
rows = cursor.execute(sql)  #拿到受影响的行数

cursor.close()
conn.close()

if rows:
    print(‘登录成功‘)
else:
    print(‘登录失败‘)

1、防注入

如上我们采用字符串拼接的形式生成sql语句。但是当存在 -- 时有可能对后面的语句形成干扰。

当面临这种情况时,用execute做字符串拼接

import pymysql
user="egon1"
pwd= 123
#先链接,拿到游标
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘1234‘,
database=‘ls‘,charset=‘utf8‘) cursor=conn.cursor() #拿到游标,即mysql > sql="select * from std where name=%s and password=%s;" row_count=cursor.execute(sql,[user,pwd]) print(row_count) conn.commit() cursor.close() conn.close() ..............其中()【】都可以使用

 

  • 增
  • 删
  • 改
  • 查
  • 与sql语句基本一致

 

 

当我查找数据时,会返回很多内容,我们需要通过fetchone,fetchmany,fetchall来获得消息

import pymysql
user="egon16"
pwd= 123
#先链接,拿到游标
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘1234‘,
               database=‘ls‘,charset=‘utf8‘)

cursor=conn.cursor()
sql=‘select * from stu;‘
rows = cursor.execute(sql)

#查单条fetchone
# res1=cursor.fetchone()
# res2=cursor.fetchone()
# res3=cursor.fetchone()
# print(res1)
# print(res2)
# print(res3)
# print(res3[0])
#查多条fetchmany
# print(cursor.fetchmany(3))
# print(cursor.fetchone())
#查所有fetchall
# print(cursor.fetchall())
# print(cursor.fetchone())

#-------光标的移动--------
#1.绝对路径:从文件的开头位置算起
# print(cursor.fetchall())
# cursor.scroll(1,mode=‘absolute‘)
# print(cursor.fetchone())
# cursor.scroll(3,mode=‘absolute‘)
# print(cursor.fetchone())

#2.相对路径:
print(cursor.fetchone())
print(cursor.fetchone())
cursor.scroll(2,mode=‘relative‘) #相对于上面的两条向后移两条
print(cursor.fetchone())

print(‘%s row in set (0.00 sec)‘ %rows)
cursor.close()
conn.close()
技术分享图片
------查看表中最后一行的iD
import pymysql
conn=pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘123456‘,
             database=‘day47‘,charset=‘utf8‘)
cursor=conn.cursor()


sql=‘insert into user1(user,password) values(%s,%s);‘
rows=cursor.execute(sql,(‘alex‘,‘123‘))
# rows=cursor.executemany(sql,[(‘yuanhao‘,‘123‘),(‘laowu‘,‘123‘),(‘kgf‘,‘12323‘)])
conn.commit()
print(cursor.lastrowid)  #查看表中最后一行的iD

cursor.close()
conn.close()
获取插入的最后一条数据的自增ID

 

pymysql

标签:返回   注入   字符串   获得   很多   ora   cal   under   values   

原文地址:https://www.cnblogs.com/ls-2018/p/8976444.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!