码迷,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
迷上了代码!