python MySQLdb中轉義字串的問題

2021-06-16 09:33:35 字數 1408 閱讀 6713

#-*-coding: utf8 -*-

from connectdb import connectdatabase; #connectdatabase是我自己定義的乙個連線資料庫的函式

import mysqldb;

def escape():

cnn = connectdatabase();

cursor = cnn.cursor();

name = "\\";

name2 = "\""

#name = mysqldb.escape_string(name);

#name2 = mysqldb.escape_string(name2);

print name,name2;

queryli = [(12,name),(12,name2)]

print queryli;

#cursor.executemany("insert into resource(cid,name) values(%s, %s)",queryli);

cursor.execute("insert into resource(cid,name) values(%s, %s)" , (12,name) );

cursor.close();

cnn.commit();

cnn.close();

if __name__ == "__main__":

escape();

注意: cursor.execute()可以接受乙個引數,也可以接受兩個引數:

(1) cursor.execute("insert into resource(cid,name) values(%s, %s)",(12,name) );

這種格式是接受兩個引數,mysqldb會自動替你對字串進行轉義和加引號,不必再自己進行轉義,執行完

此語句之後,resource表中多了一條記錄: 12 \

(2) cursor.execute("insert into resource(cid,name) values(%s, %s)"%(12,name) );

這種格式是利用python的字串格式化自己生成乙個query,也就是傳給execute乙個引數,此時必須自己對

字串轉義和增加引號,即上邊的語句是錯誤的,應該修改為:

name = mysqldb.escape_string(name);

cursor.execute("insert into resource(cid,name) values(%s,'%s')"%(12,name) );

這樣插入的記錄才和(1)一樣:12 \

python MySQLdb學習筆記

mysqldb庫是python訪問mysql的連線庫,最近專案中需要使用,將學習使用所得整理如下。mysqldb windows下執行需要 libmysql.dll libmmd.dll 和 libguide40.dll 可以放在sitepackage下也可以在windows system32 學習...

python MySQLdb連線mysql失敗問題

mysql exceptions.operationalerror 2002,can t connect to local mysql 在很多種情況下,如果配置檔案沒有出錯的話,將機器重啟,確認關閉防火牆,確定啟動了mysql即可。網上很不錯講解 最近了解了一下django,資料庫選用了mysql,...

Python Mysqldb使用簡介

python db api使用流程 一 python查詢mysql使用 fetchone 方法獲取單條資料,使用fetchall 方法獲取多條資料。fetchone 該方法獲取下乙個查詢結果集。結果集是乙個物件 fetchall 接收全部的返回結果行.rowcount 這是乙個唯讀屬性,並返回執行e...