国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

pymysql 使用

CastlePeaK / 1470人閱讀

摘要:一安裝模塊二導(dǎo)入需要的模塊三構(gòu)建數(shù)據(jù)庫(kù)屬性四寫語句五使用連接數(shù)據(jù)庫(kù)六執(zhí)行語句插入數(shù)據(jù)刪除刪除數(shù)據(jù)時(shí)如果沒有提交數(shù)據(jù)庫(kù)中數(shù)據(jù)不變但是查詢到的東西沒有要?jiǎng)h除的那條數(shù)據(jù)修改數(shù)據(jù)庫(kù)如果修改沒有提交在代碼查看到的數(shù)據(jù)已經(jīng)修改單數(shù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)沒有修改

一.安裝pyMySQL模塊

pip install pymysql

二,導(dǎo)入需要的模塊

import pymysql

三.構(gòu)建數(shù)據(jù)庫(kù)屬性

host = "localhost"
username = "root"
password = "root"
db_name = "test"

四.寫sql語句

insert_table_sql = """insert into user values (null ,"lw","555222000")"""
find_table_sql = """select * from user"""
delete_table_sql = """delete from user where user_id={user_id}"""

五.使用pymysql連接數(shù)據(jù)庫(kù)

 conn = pymysql.connect(host=host,
                           user=username,
                           password=password,
                           db=db_name)

六.執(zhí)行SQL語句

    try:
        with conn.cursor() as cursor:
            # 插入數(shù)據(jù)
            # cursor.execute(insert_table_sql.format(username="ll", password="123"))
            # conn.commit()

            # 刪除
            # cursor.execute(delete_table_sql.format(user_id="3"))
            # pymysql刪除數(shù)據(jù)時(shí),如果,沒有提交,數(shù)據(jù)庫(kù)中數(shù)據(jù)不變,但是查詢到的東西沒有
            # 要?jiǎng)h除的那條數(shù)據(jù)
            # conn.commit()
            # 修改數(shù)據(jù)庫(kù)
            cursor.execute(update_table_sql.format(user_id=5))
            # 如果修改沒有提交,在代碼查看到的數(shù)據(jù)已經(jīng)修改,單數(shù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)沒有修改
            conn.commit()
            # 查詢?nèi)繑?shù)據(jù)
            cursor.execute(find_table_sql)
            result = cursor.fetchall()
            print(result)

    finally:
        conn.close()

七.防sql注入

修改插入數(shù)據(jù)sql語句為:
insert_table_sql = """insert into user(user_id,user_name,password) values (%S ,%S,%S)"""
執(zhí)行代碼修改為
 cursor.execute(insert_table_sql, (1, "ll", "123"))
 conn.commit()

運(yùn)行后報(bào)錯(cuò)

Traceback (most recent call last):
  File "D:/creator/pythonProject/0002.py", line 55, in 
    save_code()
  File "D:/creator/pythonProject/0002.py", line 33, in save_code
    cursor.execute(insert_table_sql, (1, "ll", "123"))
  File "D:creatorpythonProjectvenvlibsite-packagespymysqlcursors.py", line 168, in execute
    query = self.mogrify(query, args)
  File "D:creatorpythonProjectvenvlibsite-packagespymysqlcursors.py", line 147, in mogrify
    query = query % self._escape_args(args, conn)
ValueError: unsupported format character "S" (0x53) at index 54

錯(cuò)誤原因:字符占位符寫錯(cuò)的應(yīng)該是%s 而不是$S s應(yīng)該小寫

修改語句為

insert_table_sql = """insert into user(user_id,user_name,password) values (%s ,%s,%s)"""

運(yùn)行正常

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42941.html

相關(guān)文章

  • 【Python3】pymysql模塊

    摘要:模塊什么是是在版本中用于連接服務(wù)器的一個(gè)庫(kù),中則使用。遵循數(shù)據(jù)庫(kù)規(guī)范,并包含了客戶端庫(kù)。 【Python3】pymysql模塊 1. 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務(wù)器的一個(gè)庫(kù),Python2中則使用mysqldb。 PyMySQL 遵循 Python 數(shù)據(jù)庫(kù) API v2.0 規(guī)范,并包含了 pure-Python ...

    Drummor 評(píng)論0 收藏0
  • python中操作mysql的pymysql模塊詳解

    摘要:簡(jiǎn)述是中操作的模塊,其使用方法和幾乎相同。但目前支持而后者不支持版本。因此要避免這種情況需使用提供的參數(shù)化查詢。使用存儲(chǔ)過程動(dòng)態(tài)執(zhí)行防注入使用存儲(chǔ)過程自動(dòng)提供防注入,動(dòng)態(tài)傳入到存儲(chǔ)過程執(zhí)行語句。 簡(jiǎn)述 pymsql是Python中操作MySQL的模塊,其使用方法和MySQLdb幾乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。本文測(cè)試python版本:3.5....

    shiweifu 評(píng)論0 收藏0
  • 如何用python的pymysql操作MySQL數(shù)據(jù)庫(kù)?

    摘要:一介紹是在版本中用于連接和操作服務(wù)器的一個(gè)庫(kù)引入方式二連接數(shù)據(jù)庫(kù)的完整流程引入模塊引入第三方庫(kù)創(chuàng)建連接對(duì)象用戶名密碼端口號(hào)默認(rèn)為且此處為整數(shù)類型數(shù)據(jù)庫(kù)名連接地址使用連接對(duì)象創(chuàng)建游標(biāo)對(duì)象游標(biāo)對(duì)象是通過鏈接對(duì)象進(jìn)行創(chuàng) ...

    Keagan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<