我想編寫一個用一些信息填充數據庫的python腳本。我的表格中的一列是BLOB,我希望爲每個條目保存一個文件。如何使用python插入/檢索作爲BLOB存儲在MySQL數據庫中的文件
如何讀取文件(二進制)並使用python將其插入到數據庫中?同樣,我如何檢索它並將該文件寫回硬盤上的任意位置?
我想編寫一個用一些信息填充數據庫的python腳本。我的表格中的一列是BLOB,我希望爲每個條目保存一個文件。如何使用python插入/檢索作爲BLOB存儲在MySQL數據庫中的文件
如何讀取文件(二進制)並使用python將其插入到數據庫中?同樣,我如何檢索它並將該文件寫回硬盤上的任意位置?
thedata = open('thefile', 'rb').read()
sql = "INSERT INTO sometable (theblobcolumn) VALUES (%s)"
cursor.execute(sql, (thedata,))
當然該代碼工作,因爲只有寫,如果你的表中有剛的BLOB列,你想要做的是INSERT什麼 ,當然你可以很容易地調整它來添加更多的列, 使用UPDATE代替INSERT的內容,或者你確切需要做的事情。
我還假設你的文件是二進制而不是文本等;再次,如果我的猜測是 不正確,你很容易相應地調整上述代碼。
某種SELECT
對cursor.execute
,那麼從遊標中取出某種東西,就是你如何檢索BLOB數據,就像你檢索任何其他類型的數據一樣。
您可以像插入其他列類型一樣從DB插入和讀取BLOB。從數據庫API的視圖來看,BLOB沒有什麼特別之處。
看來,MySQL已經開始警告這類事情。現在應該使用「... VALUES(** _ binary **%s)」 – Wodin 2016-04-26 10:29:32