向MySQL數據庫插入數據時常常會碰到一些特殊字符,如單引號,雙引號。python
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 \ (3)若是是命令行sql語句,咱們能夠先對變量 MySQLdb.escape_string(name) 進行轉換再寫入。