我想在PHP中的sqlite3数据库中插入一个(任意大的)上传文件。
通常我会使用file_get_contents()
然后将字符串放入SQL命令中,但之后我会遇到128MB的内存限制。
根据this discussion thread,似乎也没有简单的命令行解决方案。 (但我当然会很乐意听到。)
如何在不耗尽内存的情况下读取/写入单个BLOB字段?
答案 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';