天天看點

Python中操作myslq的方法

在windows環境下安裝mysql子產品用于python開發,請見我的另一篇文章:

<a href="http://www.crazyant.net/2012/06/08/mysql-python-windows%E4%B8%8Bexe%E5%AE%89%E8%A3%85%E6%96%87%E4%BB%B6%E4%B8%8B%E8%BD%BD/" target="_blank">MySQL-python Windows下EXE安裝檔案下載下傳</a>

執行結果:

Database version : 5.5.25

主要還是在cursor上面執行execute方法來進行,請見源碼:

運作結果(在phpmyadmin中檢視,在mysql指令行檢視結果是一樣的):

Python中操作myslq的方法

這個恐怕是用的最多的了,請速看代碼:

運作結果:

(1L, ‘Jack London’) (2L, ‘Honore de Balzac’) (3L, ‘Lion Feuchtwanger’) (4L, ‘Emile Zola’) (5L, ‘Truman Capote’)

上面的代碼,用來将所有的結果取出,不過列印的時候是每行一個元祖列印,現在我們使用方法,取出其中的單個資料:

1 Jack London 2 Honore de Balzac 3 Lion Feuchtwanger 4 Emile Zola 5 Truman Capote

numrows = int(cur.rowcount)  用于擷取結果集的數目

row = cur.fetchone()    每次取出一行資料,同時記錄集的指針執行下一行

cur.description: ((‘Id’, 3, 1, 11, 11, 0, 0), (‘Name’, 253, 17, 25, 25, 0, 1)) Id Name

結果:

Number of rows updated: 1

有人喜歡把圖檔存入MYSQL(這種做法貌似很少吧),我看大部分的程式,圖檔都是存放在伺服器上的檔案,資料庫中存的隻是圖檔的位址而已,不過MYSQL是支援把圖檔存入資料庫的,也相應的有一個專門的字段BLOB (Binary Large Object),即較大的二進制對象字段,請看如下程式,注意測試圖檔自己随便找一個,位址要正确:

首先,在資料庫中建立一個表,用于存放圖檔:

然後運作如下PYTHON代碼進行:

Python中操作myslq的方法

escape_string函數将插入資料庫的字元串進行轉義,這會指一些SQL注入的攻擊

1、因為不存在writer表(SQL第三條語句),是以出現錯誤:

Error 1146: Table ‘test.writer’ doesn’t exist

2、出現錯誤,出發異常處理,3條語句的前兩條會自動變成了沒有執行,結果不變

3、如果本代碼放到一個MyISAM引擎表,前兩句會執行,第三句不會;如果是INNDB引擎,則都不會執行。

本文轉自 chengxuyonghu 51CTO部落格,原文連結:http://blog.51cto.com/6226001001/1576074,如需轉載請自行聯系原作者