如何在PHP中读取和写入非常大的文件到sqlite-blob列?

时间:2015-02-19 17:45:57

标签: php sqlite

我想在PHP中的sqlite3数据库中插入一个(任意大的)上传文件。

通常我会使用file_get_contents()然后将字符串放入SQL命令中,但之后我会遇到128MB的内存限制。

根据this discussion thread,似乎也没有简单的命令行解决方案。 (但我当然会很乐意听到。)

如何在不耗尽内存的情况下读取/写入单个BLOB字段?

1 个答案:

答案 0 :(得分:4)

从sqlite 3.8.6开始,readfile / writefile命令可用:

http://www.sqlite.org/cli.html#fileio

阅读文件:

CREATE TABLE images(name TEXT, type TEXT, img BLOB);
INSERT INTO images(name,type,img) VALUES('icon','jpeg',readfile('icon.jpg'));

写一个文件:

SELECT writefile('icon.jpg',img) FROM images WHERE name='icon';