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

如何在PHP中将非常大的文件读写到sqlite-blob列中?,php,sqlite,Php,Sqlite,我想将一个(任意大的)上传文件插入PHP中的sqlite3数据库 通常我会使用file\u get\u contents(),然后将字符串放入SQL命令中,但随后我会遇到128MB的内存限制 据他说,似乎也没有简单的命令行解决方案。(当然,我很高兴听到其他消息。) 如何在不耗尽内存的情况下读取/写入单个BLOB字段?自sqlite 3.8.6以来,readfile/writefile命令可用: 读取文件: CREATE TABLE images(name TEXT, type TEXT, im

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

通常我会使用
file\u get\u contents()
,然后将字符串放入SQL命令中,但随后我会遇到128MB的内存限制

据他说,似乎也没有简单的命令行解决方案。(当然,我很高兴听到其他消息。)


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

自sqlite 3.8.6以来,readfile/writefile命令可用:

读取文件:

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';

通常情况下,大文件是单独存储的,而不是存储在数据库中。如果必须将其存储在数据库中,请尝试将文件分块读写,这样服务器一次只需将文件的一块存储在内存中(我不知道PHP是否支持这样做)。