import pymysql # 建立鏈接 use_unicode=true指定字符的編碼、解碼格式,進行自動編碼解碼,mysql數據庫的編碼格式爲gbk,而項目數據庫爲utf-8 # 使用與django和falsk框架 db=pymysql.connect(host='127.0.0.1',user='root',password='',port=3306,database='t1',charset='utf8',use_unicode=True) def func(): sql='select * from class' try: # 得到course對象 corsor=db.cursor() # 執行sql語句 corsor.execute(sql) # 得到查詢結果 results=corsor.fetchall() l=list(results) print(l) return len(l) except Exception as e: return str(e) if __name__ == '__main__': print(func())
from pymysql import * def main(): find_name = input("請輸入物品名稱:") # 建立Connection鏈接 conn = connect(host='localhost',port=3306,user='root',password='',database='t1',charset='utf8') # 得到Cursor對象 cs1 = conn.cursor() # 不使用防禦措施 輸入 " or 1=1 or " 那麼就返回數據庫數據,形成數據庫泄露 # count=cs1.execute("select * from course where cname='%s'" % find_name) # 構造查詢參數 -- 方式sql注入 execute模塊會自動爲要查詢的匹配引號和雙引號 params=[find_name] count=cs1.execute('select * from course where cname=%s',params) # 注意: # 若是要是有多個參數,須要進行參數化 # 那麼params = [數值1, 數值2....],此時sql語句中有多個%s便可 print(count) result=cs1.fetchall() print(result) # 關閉corsor對象 cs1.close() # 關閉connection對象 conn.close() if __name__ == '__main__': main()
輸入要查的字段會顯示響應數據內容。python