1. 程式人生 > >navicat 使用 pymysql模塊

navicat 使用 pymysql模塊

格式 問題 charset 更新 () strong 元組 update base

新健庫 ,新增字段+類型+約束

設計表:外鍵(自增)

新建查詢

建立表模型

技術分享圖片創建表 及數據(根據模型看) 技術分享圖片sql 練習題(根據模型看)

pymysql 模塊

# import pymysql
# #連接
# conn = pymysql.connect(
#     host = ‘localhost‘,
#     port = 3306,
#     user = ‘root‘,
#     password = ‘‘,
#     database = ‘day41‘,
#     charset = ‘utf8‘
# )

# 遊標
# cursor =conn.cursor() #執行完畢後返回的結果默認的以元組顯示
# cursor =conn.cursor(pymysql.cursors.DictCursor) #將查詢結果做成字典的格式 # pymysql操作數據庫 # 執行sql 語句 # 語句在mysql裏面執行 # res=cursor.execute("select * from class") #執行sql語句 返回sql查詢成功的記錄數目 # print(res) #查詢到的數據總條數 # print(cursor.fetchone()) # {‘cid‘: 1, ‘caption‘: ‘三年二班‘} 獲取一條查詢結果 # 類似於管道取一條少一條 # print(cursor.fetchone()) #{‘cid‘: 2, ‘caption‘: ‘三年三班‘} 獲取一條查詢結果
# # # print(cursor.fetchone()) #{‘cid‘: 3, ‘caption‘: ‘一年二班‘} 獲取一條查詢結果 # cursor.scroll(1,‘relative‘) #相對移動,第三條數據被截取 # # print(cursor.fetchall()) #[{‘cid‘: 4, ‘caption‘: ‘二年九班‘}] # cursor.scroll(1,‘absolute‘) #絕對移動,參照開始位置 # print(cursor.fetchall()) #[{‘cid‘: 2, ‘caption‘: ‘三年三班‘}, {‘cid‘: 3, ‘caption‘: ‘一年二班‘}, {‘cid‘: 4, ‘caption‘: ‘二年九班‘}]

sql 註入問題不要手動去拼接查詢的sql語句

username = input(">>>:").strip()
password = input(">>>:").strip()
sql = "select * from user where username=‘%s‘ and password=‘%s‘"%(username,password)

# 用戶名正確
username >>>: jason -- jjsakfjjdkjjkjs
# 用戶名密碼都不對的情況
username >>>: xxx or 1=1 --asdjkdklqwjdjkjasdljad  #在sql裏面 --代表註釋掉 約束條件來判斷的時候 1=1 is Ture
password >>>: ‘‘


正確註入

  username = input(">>>:").strip()
  password = input(">>>:").strip()

  
sql = "select * from user where username=%s and password=%s"

  
res=cursor.execute(sql,(username,password)) #sql會自己去拼接

增 改查

import pymysql

conn = pymysql.connect(host=localhost,
                       port=3306,
                       user=root,
                       password=‘‘,
                       database=day41, #哪個庫下面
                       charset=utf8,
                       autocommit=True  # 插入數據之後 確保無誤後才會真正修改到數據庫 在這裏聲明的話每次操作都會直接修改到數據庫
                       )
cursor = conn.cursor(pymysql.cursors.DictCursor)
username = input(》》》:)
password = input(》》》: )

#插入數據
# sql = "insert into userinfo(name,password) values (%s,%s)"  # 必須讓mysql自己拼接 不然有可能自己拼接的在mysql裏面執行的時候約束條件
# 有一個判斷就直接進去了數據就不安全了
# res = cursor.execute(sql,(username,password))
# conn.commit() #確保數據無誤後,commit之後才會將數據真正修改到數據庫

# if res:
    # print(cursor.fetchall())
    # pass
# else:
#     print(‘用戶名或密碼錯誤!‘)


#查詢驗證
# sql=‘select * from userinfo where name =%s and password=%s ‘
# res=cursor.execute(sql,(username,password))
# conn.commit()
# if res:
#     pass
# else:
#     print(‘密碼或用戶名錯誤‘)


#更新數據
# sql = "update userinfo set name=%s where id =%s"
#
# res=cursor.execute(sql,(username,password))
# if res:
#     pass
# else:
#     print(‘error‘)

navicat 使用 pymysql模塊