Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php pg_lo_write在哪里存储其内容?_Php_Postgresql_Blob_Adodb - Fatal编程技术网

Php pg_lo_write在哪里存储其内容?

Php pg_lo_write在哪里存储其内容?,php,postgresql,blob,adodb,Php,Postgresql,Blob,Adodb,我们的系统中有一个函数可以将文件写入postgres BLOB,函数是pg_lou_write,我们的系统使用PHP、ADODB和PostgreSQL 我想知道的是这些数据存储在哪里,它是postgres目录中的一个文件,还是一个表中的一个文件 非常感谢 回答信息 感谢Ben Fransen的回答,BLOB实际上存储在pg_largeobject表中。我使用的是pgAdmin,表是隐藏的,但是可以使用查询来访问它 SELECT * FROM pg_largeobject WHERE LOID =

我们的系统中有一个函数可以将文件写入postgres BLOB,函数是
pg_lou_write
,我们的系统使用PHP、ADODB和PostgreSQL

我想知道的是这些数据存储在哪里,它是postgres目录中的一个文件,还是一个表中的一个文件

非常感谢

回答信息

感谢Ben Fransen的回答,BLOB实际上存储在
pg_largeobject
表中。我使用的是pgAdmin,表是隐藏的,但是可以使用查询来访问它

SELECT * FROM pg_largeobject WHERE LOID = 123456

如果我错了,请纠正我,但据我所知,在数据库中存储文件时,它们存储为二进制数据。文件的二进制值存储在BLOB字段中。当您试图获取该文件时,二进制值将被重建为原始文件。

为便于将来参考,请参阅PostgreSQL手册中的相关章节:


.

在我的表中,我有一个包含六个字符的OID,但没有任何二进制字段。我已经查看了每个表的统计数据,没有一个超过了几千字节,我在其中有大约10MB+的文件。是否有应该是BLOB的文件的“位置”引用?也许你能从中找到文件的存储位置?我想我找到了。数据库中应该有一个
pg_largeobject
表。您提到的OID是该表中记录的键。我想您会在
pg_largeobject
表中找到与OID匹配的二进制值。