2012年12月29日 星期六

[MySQL]Python連結MySQL (包含python3.3)

        先前的文章有提到關於python使用MySQL的部分,但一年前用python3以上去連結MySQL對我這種技術新手簡直是惡夢,所幸當我從另一個噩夢(兵役)走出來的時候MySQL官方已經提供解決方案了,官方ㄋㄟ!!!相容於Python DB API,所以如果會用內建的sqlite3模組的話會更好上手,用法差不了多少。

下載位置:http://dev.mysql.com/downloads/connector/python/

如果你跟我一樣是用最潮的python3.3+64位元的話,可能得要用命令列來安裝
首先在上面的網頁的select platform選擇Platform Independent
然後下載Zip 的壓縮檔
解壓縮到你想要的地方,比如說D槽
進入命令提示字元(CMD),到剛才解壓目錄的路徑

打入安裝命令:python setup.py install

應該是不會有甚麼問題,有的話大概是忘了裝Distribute套件或是沒設系統路徑吧

裝好就先來實驗看看

import mysql.connector as sql

conn=sql.connect(host='localhost', user='root', passwd='')
c = conn.cursor()
a = c.execute("SHOW DATABASES")
for row in c.fetchall():
print(row)

其中user是MySQL帳戶,passed則是密碼,執行成功的話應該是會出現目前在MySQL內有那些資料庫。基本上以上的程式碼可以解決大部分的需求了,稍微頗析一下分別是甚麼意思。

mysql.connector.connect()

自然就是跟MySQL做連線,裡面可用的參數落落長(詳細可看這裡),但常用的大概就四個: host = 伺服器位置
user = 帳戶名
passed = 帳戶密碼
database = 選取的資料庫名


mysql.connector.cursor()

傳回資料庫游標物件(MySQLCursor()),要對資料庫下命令必須要使用這個物件,這個物件可以衍生下面兩種常用的方法

 

MySQLCursor.execute()

對資料庫下命令,範例內的"SHOW DATABASES",顧名思義就是秀出所有資料庫名字。
如果要看某table內容可以下:"SELECT * FROM xxx"


MySQLCursor.fetchall()

執行命令後還需要將資料取出來,所以執行fetchall(),意思是一次將所有資料全部取出,python會自動將資料以list的方式取出



今天大概就介紹到這邊,以後會四個部分做詳細介紹:connect、execute、fetch、error
另外小弟經驗也沒有很老道,也懇請各位指正錯誤,讓大家可以一起學習進步,感恩

2012年12月28日 星期五

        離開軍旅生活(外島前線= =)也快兩個月了,忽然想看看只有三篇的鳥巢有甚麼近況,想不到瀏覽人次比我想像的多!(我以為只有小貓兩三隻)而且還有人引用我的文章,小弟受到很大的鼓勵。所以從今天起我會努力開始產出文章的! 也希望各位先進多多給小弟意見,可以交流喜歡的事物是身為人最大的福氣!