1. 程式人生 > >Python 資料庫,操作mysql,防sql注入,引數化

Python 資料庫,操作mysql,防sql注入,引數化

 

demo.py(防sql注入):

from pymysql import *

def main():

    find_name = input("請輸入物品名稱:")

    # 建立Connection連線
    conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_dong',charset='utf8')
    # 獲得Cursor物件
    cs1 = conn.cursor()

    # 非安全的方式。  不要自己手動拼裝sql語句。
    # sql = 'select * from goods where name="%s"' % find_name

    # 安全的方式
    # 構造引數列表
    params = [find_name]
    count = cs1.execute('select * from goods where name=%s', params)  # 通過params列表,自動填充%s  
    # 注意:
    # 如果要是有多個引數需要進行引數化
    # 那麼params = [數值1, 數值2....],此時sql語句中有多個%s即可 
    
    result = cs1.fetchall()
    print(result)
    cs1.close()
    conn.close()

if __name__ == '__main__':
    main()