兩種解決方法:
name是一個含有’的字符串例如I'am a handsome boy
第一種:
cursor.execute("insert into resource(cid,name) values(%s, %s)" , (12,name) );
這種格式是接受兩個參數,MySQLdb會自動替你對字符串進行轉義和加引號,不必再自己進行轉義 第二種 ursor.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) );