Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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 获得';附件';从MySQL BLOB字段中取出,然后放入文件系统_Php_Mysql_Linux_Filesystems_Blob - Fatal编程技术网

Php 获得';附件';从MySQL BLOB字段中取出,然后放入文件系统

Php 获得';附件';从MySQL BLOB字段中取出,然后放入文件系统,php,mysql,linux,filesystems,blob,Php,Mysql,Linux,Filesystems,Blob,我有一个标准的LAMP服务器,目前有一种方法可以附加/上传PDF或JPEG的库存记录。我早在1999/2000年就设计了这个系统,当然它的规模已经相当大了。保存附件的表接近10GB,这使得处理数据的速度有点慢(特别是当我想查询所有内容并按文件大小排序以查看大附件的位置时) 我想将此附件从MySQL中“移动”到文件系统中。我基本上只是想以某种方式存储文件名的路径,而不是当前的BLOB字段 是否有人或是否有人做过类似的事情,如果是,您采取了什么方法将附件从数据库中取出并放入文件系统?目前,该应用程序

我有一个标准的LAMP服务器,目前有一种方法可以附加/上传PDF或JPEG的库存记录。我早在1999/2000年就设计了这个系统,当然它的规模已经相当大了。保存附件的表接近10GB,这使得处理数据的速度有点慢(特别是当我想查询所有内容并按文件大小排序以查看大附件的位置时)

我想将此附件从MySQL中“移动”到文件系统中。我基本上只是想以某种方式存储文件名的路径,而不是当前的BLOB字段

是否有人或是否有人做过类似的事情,如果是,您采取了什么方法将附件从数据库中取出并放入文件系统?目前,该应用程序是用PHP编写的,因此我正在考虑编写一个脚本来迭代每个记录,并将当前BLOB数据保存到文件系统中

关于如何最好地实现这一点,有什么想法或想法吗

非常感谢,

布鲁斯

目前,该应用程序是用PHP编写的,因此我正在考虑编写一个脚本来迭代每个记录,并将当前BLOB数据保存到文件系统中

我想差不多就是这样。将PHP的
max\u execution\u time
设置为一个很大的值,然后运行每一条记录,
fwrite()
输出内容-其他内容不多(除非我把你的问题搞错了)

成功写入后,将写入的文件路径写回新的
文件路径
字段,并清除BLOB字段的内容(可能是在执行CRC32比较以确保真正、真正地正确写入内容之后)


如果文件未正确写入,请不要清除BLOB字段。这样,您就可以恢复崩溃的运行,而无需再次运行每条记录。

感谢“最大执行时间”和CRC32提示,Pekka!这就是我在设计这个时想要的东西。你的回答正是我想要的:-)如果有人写了一些有用的东西,那就更好了:-)