python向mysql插入特殊字元

2021-09-10 09:08:43 字數 767 閱讀 3829

**:

向mysql資料庫插入資料時經常會碰到一些特殊字元,如單引號,雙引號。

cur.execute(u'''update table set name = %s where id = %s;''' , (p.decode('utf-8'),index))

name = "\\"; 

name2 = "\""

注意: 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   \

解決hibernate向mysql插入中文亂碼

1 首先需要修改mysql資料庫的配置檔案my.ini,此檔案放在mysql根目錄下。在此檔案下查詢default character set屬性,並將其值更改為utf8 注意 不是utf 8,也要注意大小寫 這裡需要將default character set屬性全部屬性的值修改為utf8。示例 ...

向Mysql插入中文以後顯示「???」

mysql 連線url中useunicode true characterencoding utf 8 的作用 useunicode true characterencoding utf 8 但是為什麼要新增呢?新增的作用是 例如 mysql資料庫用的是gbk編碼,而專案資料庫用的是utf 8編碼。...

向mysql 插入中文數值報錯

報錯 error 1366 incorrect string value xe6 xb5 x8b xe8 xaf x95 for column description at row 1 原因是資料庫字段沒有設定編碼為utf8而是預設的lanti 1 檢視表中的各字段的屬性 show full col...