2012-01-31 81 views
1

我做了一些谷歌上搜索,並慘遭失敗找到一個答案......流數據

是否有可能流讀/寫從本地FS一些二進制數據使用Zend Framework的Table/Row網關類到MySQL blob字段中?

使用案例(略做作,我知道):(!eeekk)

我有我的地方FS一個100MB的文件,並希望這些信息存儲在一個數據庫。目前,我被迫將整個文件讀入PHP的內存,然後將其分配給Zend_Db_Table_Row_Abstract對象,然後才能將記錄保存到mysql。有沒有辦法將一個流分配給行對象,以便我可以保存從FS流出的行,從而大量減少內存消耗? (和我想的相反從數據庫讀取)

注:DB服務器和PHP服務器運行在單獨的硬件/實例..

道歉,如果我錯過了一些簡單的方法來這還是我我問的是不可能的,這只是我似乎記得用PostgreSQL和ZF很容易做到這一點。

+0

對於從文件讀取我認爲你正在尋找['LOAD_FILE()'](http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_load-file) MySQL功能。對於寫入文件有['SELECT ... INTO OUTFILE'](http://dev.mysql.com/doc/refman/5.0/en/select-into.html),但我不確定這是如何工作的我從來沒有使用它來複制確切文件的條款。 – DaveRandom 2012-01-31 10:33:54

+0

@DaveRandom理想情況下,我想使用Zend的類(或者如果需要,可以擴展它們)。另外在我的一般情況下,運行PHP(以及其上的文件)的實例與MySQL服務器不是同一個實例。這就是說,從來沒有遇到過'LOAD_FILE',謝謝 – 2012-01-31 10:44:27

回答

3

理論流應該是可能的,如Large Objects (LOBs)中所述。在實踐中,這隻適用於寫作。有關閱讀流的信息有unresolved bug 8年以上。如果你想讀取流,你將不得不選擇除PHP以外的其他技術。