亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python2.7能不能同時連接兩個數據庫

發布時間:2021-09-04 10:16:40 來源:億速云 閱讀:125 作者:chen 欄目:編程語言

本篇內容主要講解“python2.7能不能同時連接兩個數據庫”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python2.7能不能同時連接兩個數據庫”吧!

一、前言

這個問題是本人在開發的時候,遇到需要在一個腳本里面連接兩個數據庫的需求,當時對于python2.7不是很熟悉,所以想要在網上搜一下python2.7是否可以同時連接兩個數據庫,只是并沒有一個明確的答案。加上當時腳本一直報錯,所以導致本人很懷疑是否同時連接兩個數據庫是不合理的。。

只是python作為一個成熟的語言,同時連接多個數據庫本來就是手到擒來的問題。本篇首先是要回答,python是可以連接多個數據庫的,其次是記錄一下操作數據庫出現的問題。

二、雙數據庫操作遇到的bug

1、大致步驟

//連接
db1 = MySQLdb.connect(host=dbhost, user=dbuser, passwd=dbpass, db=dbname, port=dbport)
db2 = MySQLdb.connect(host=slavehost, user=slaveuser, passwd=slavepass, db=slavedb, port=dbport)
//獲取cursor對象
cursor = db1.cursor()
cursor_build = db2.cursor()
//操作數據庫
cursor.execute(sql1)
cursor_build.execute(sql2)
//結果
db1操作成功,db2操作無響應

如步驟所示,本人在操作的時候,發現db1是可以正常執行的,但是到db2就死活不成功,此時的腳本并沒有報錯。

2、打印相關信息

(1)打印db2的信息

mysql實例:<MySQLdb.cursors.Cursor object at 0x0000000002DA9908>

sql打印:直接在數據庫中執行sql無報錯

(2)打印cursor 對象

<_mysql.connection open to 'localhost' at 0000000002D42458>
<_mysql.connection open to 'localhost' at 0000000002D42E78>

可以看到兩個數據庫都是有cursor 對象的,而且并沒有什么明顯的差異,都能正常操作數據庫才對

(3)打印返回值

result = db2.execute(insert_build_sql) # 插入數據
print result

返回結果是1 ,代表受影響行數是1,但是實際上數據庫并沒有插入進去。關鍵是db1還是插入成功了,簡直是無語。

三、問題所在

正在本人瘋狂搜索無果的時候,一個py大佬剛好在群上發消息,本人果斷抓住機會詢問這個博主,最終解決了這個問題。

咨詢py大佬們,有個大佬問是否開啟了autocommit,這肯定是沒有的。本來db1能插入成功,本人就想當然以為db2也能插入成功,不需要手動commit之類的。然而還是小看了python,后來百度查詢才知道,MySQLdb 在連接后關閉了自動提交,行叭,很強勢。

在連接完db之后,新增autocommit屬性,設置自動提交

 db1.autocommit(1)
 db2.autocommit(1)

繼續測試,發現完美寫入。不過通過這件事也能發現mysqldb操作mysql的一些特性,一般來說,當只連接一個庫的時候,是可以進行正常的增刪改查的。但是當連接多個庫的時候,如果不顯式設置autocommit的話,mysqldb 會自動在語句執行完加一句 set autocommit = 0。眾所周知的是innodb引擎的操作都是帶有事務特性的,關閉自動提交自然是無法成功執行sql的。

到此,相信大家對“python2.7能不能同時連接兩個數據庫”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延边| 岫岩| 慈溪市| 山东省| 高碑店市| 拜泉县| 贵港市| 玛纳斯县| 县级市| 开化县| 家居| 泰来县| 灵川县| 镇赉县| 侯马市| 舟山市| 茌平县| 石门县| 洪雅县| 绥江县| 贺州市| 无棣县| 新宁县| 龙海市| 阿鲁科尔沁旗| 榆林市| 电白县| 防城港市| 安宁市| 金沙县| 新密市| 阿尔山市| 环江| 威海市| 沙湾县| 东兴市| 汾阳市| 龙海市| 弥勒县| 长白| 即墨市|