#coding:utf-8 import MySQLdb def get_mysql_data(sql,data=None): ''' sql: sql語句 select開頭,查詢單條語句 SELECT開頭,查詢多條語句 配置文件里要提前定義一個字典,字典內容如下 MySQL_CONFIG = { 'HOST':'xxxxxxx',#數據庫ip地址 "PORT" : 3306,#端口號 "USER" :'xxxxxxx',#用戶 "PASSWORD": 'xxxxxxx',#密碼 "DB" : 'xxxxxxx'#數據庫 } ''' try: #捕捉mysql連接異常 conn = MySQLdb.connect(host=MySQL_CONFIG['HOST'], port=MySQL_CONFIG['PORT'], user=MySQL_CONFIG['USER'], passwd=MySQL_CONFIG['PASSWORD'], db=MySQL_CONFIG['DB'], charset='utf8' ) except Exception as e: print('mysql連接失敗'),e else: cursor = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) #創建游標 try: #捕捉sql錯誤異常 cursor.execute(sql,data)#這樣執行sql是為了防止sql注入 except Exception as e: print('sql執行失敗,請檢查sql!') return 'sql_error' else: conn.commit() #如果sql執行成功的話,提交一下 if sql[:6]=='select':#如果是select語句,讀取單條數據 return cursor.fetchone() elif sql[:6]=='SELECT': #如果是SELECT語句,讀取全部數據 return cursor.fetchall() else: return cursor.lastrowid#如果不是select語句的話,返回自增長id finally:#不管sql執行成功沒執行成功,都關閉連接 cursor.close() conn.close()