#需要導入pymysql模塊
import pymysql
conn = pymysql.connect(
host = '127.0.0.1',
port = 3306,
user = 'root',
password = '*****',
charset = 'utf8', #編碼也一定要添加
database = 'user_db' #一定要添加要使用的數據庫
)
cursor = conn.cursor(cursor = pymysql.cursors.DictCursor)
#設值獲取的內容為字典模式,默認是元組
sql = 'select * from user_db' #你要執行的sql語句
cursor.execute(sql)
print(cursor.fetchone()) #獲取一條
print(cursor.fetchmany(5)) #參數說明 要獲取多少
print(cursor.fetchall()) #獲取所有
# 注意: 獲取的時候,有類似讀文件的光標,
可以用 cursor.scroll(1,'relative')
cursor.scroll(1,'absolute') 來控制
# absolute 是以開頭為參考,relative 是以當前為參考
***************sql注入的問題*******************
通過特殊符號,達到欺騙,
select * from user_db where name = 'lqw' -- dadadada
#知道用戶名,需要密碼的部分被注釋掉了,直接登錄成功
select * from uer_db where name = 'add ' or 1 = 1 -- dada
#不知道用戶名,通過or 只要成立一個 1=1恆成立,也可以進入
,解決辦法,不要讓關鍵,敏感的自己拼接,
import pymysql
conn = pymysql.connect(.......
) 注意:要添加用的數據庫
cursor = conn.cursor()
sql = 'select *from where name = "%s" and password = "%s"'
cuusor.ececute(sql,(name,password))
******************pymysql的增刪改查******************
import pymysql
conn = pymysql.connect(
host = '127.0.0.1',
port = 3306,
user = 'root',
password = '991018',
db = 'user_db',
charset = 'utf8',
autocommit = True #自動提交 保存
)
cursor = conn.cursor(pymysql.cursors.DictCursor) #結果是以字典的
形式保存的
#查
# sql = 'select password from user_db where username ="lqw" ;'
# res = cursor.execute(sql)
# print(res)
# print(type(cursor.fetchone().get("password")))
# 刪
# sql = 'delete from user_db where username ="alex"'
#
# res = cursor.execute(sql)
# print(res)
# sql1 = 'select *from user_db'
# cursor.execute(sql1)
# print(cursor.fetchall())
#改
# sql12 = 'update user_db set password = "123456" where
username = "lqw"'
# res = cursor.execute(sql12)
# print(res)
# print(cursor.fetchone())
# sql1 = 'select *from user_db'
# cursor.execute(sql1)
# print(cursor.fetchall())
#增
# sql = 'select password from user_db where username ="lqw" ;
sql = 'insert user_db(username,password) values(%s,%s)'
cursor.executemany(sql,[("tank","123"),("hanhan","123")])
# sql1 = 'select *from user_db'
# cursor.execute(sql1)
print(cursor.fetchall())

# 提提神