python怎么连接mysql做olap_python 连接mysql数据库

1.python 连接的mysql数据库

+------+

| id |

+------+

| 1 |

| 7 |

| 3 |

| 4 |

| 5 |

| 8 |

| 9 |

| 13 |

| 12 |

| 14 |

| 16 |

+------+

上面这个是mysql里面的 表stu_2

下面可以进行数据的增删改查

import pymysql

conn = pymysql.connect(

user = 'root',

password = '123456',

host = '127.0.0.1',

port = 3306,

charset = 'utf8',

database = 'a1',

autocommit = True #自动提交给mysql 确认

#这个不写 也可以在最下方 写 conn.commit() 确认当前的操作,真正同步到数据库

)

cursor = conn.cursor(cursor = pymysql.cursors.DictCursor)##产生的是一个游标对象

#cursor = pymysql.cursors.DictCursor 将查询的结果制作成字典的形式返回

# sql = 'show databases'

sql = 'select * from stu_2'

res = cursor.execute(sql) #执行的是sql的语句

print(res)#返回的当前的sql影响的行数 >>>11

# ret = cursor.fetchone() #只获取查询结果的第一条数据 {'id': 1}

# ret = cursor.fetchall()# 获取查询结果的所有数据

>>>>>>>>>>>>>>>>>>

[{'id': 1}, {'id': 7}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 8}, {'id': 9}, {'id': 13}, {'id': 12}, {'id': 14}, {'id': 16}]

ret = cursor.fetchmany(2)#指定获取几条数据,如果数字超出了,也不报错[{'id': 1}, {'id': 7}]

print(ret)

#相对移动

# cursor.scroll(2,'relative') #基于指针所在位置 往后偏移 2位

[{'id': 5}, {'id': 8}, {'id': 9}, {'id': 13}, {'id': 12}, {'id': 14}, {'id': 16}]

cursor.scroll(3,'absolute')#基于起始位置 往后偏移

>>>>>>>>>>>>>>>>>

[{'id': 4}, {'id': 5}, {'id': 8}, {'id': 9}, {'id': 13}, {'id': 12}, {'id': 14}, {'id': 16}]

print(cursor.fetchall())

2.sql注入问题

import pymysql

conn = pymysql.connect(

user = 'root',

password = '123456',

db = 'a1',

host = '127.0.0.1',

port = 3306,

charset = 'utf8'

)

cursor_obj = conn.cursor(cursor= pymysql.cursors.DictCursor)

#获取用户输入的用户名和密码,然后进行校验

username= input('姓名:').strip()

password = input('密码:').strip()

#sql = "select * from stu_3 where name = '%s' and password = '%s'"%(username,password)##这样 会巧妙绕过真正的sql校验

#>>>>>>>>姓名:xxxx' or 1 = 1 -- hflekelel 可以打印出正常结果

sql = "select * from stu_3 where name = %s and password = %s"

cursor_obj.execute(sql,(username,password))

res = cursor_obj.fetchall()

if res:

print(res)

else:

print('姓名或者密码错误')

#sql 的 注入问题

#利用特殊符号和注释语法,巧妙的绕过真正的sql校验 -- dsdgg --+空格是mysql的注释

#关键性的数据,不要自己手动去拼接,而是 给execute 帮你做拼接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值