我想使用web服务将文件插入驻留在远程Web服务器上的MYSQL数据库中。如何在MySQL数据库中插入文件?
我的问题是:什么类型的表列(如varchar等)将存储文件?插入语句在文件的情况下会有所不同吗?
我想使用web服务将文件插入驻留在远程Web服务器上的MYSQL数据库中。如何在MySQL数据库中插入文件?
我的问题是:什么类型的表列(如varchar等)将存储文件?插入语句在文件的情况下会有所不同吗?
BLOB数据类型最适合存储文件。
您需要使用BLOB,还有的小图标,中,长,只是BLOB,与其他类型的,根据选一满足您的尺寸需求。
TINYBLOB 255
BLOB 65535
MEDIUMBLOB 16777215
LONGBLOB 4294967295
(in bytes)
insert语句是相当正常的。您需要使用fread
然后addslashes
来读取文件。
其他的答案会给你一个好主意,如何完成你要求什么....
然而
不是有很多情况下,这是一个好主意。通常最好只将文件名存储在数据库中,并将文件存储在文件系统中。
这样你的数据库就小得多了,可以更容易运输,更重要的是更快的备份/恢复。
我完全同意这一点。文件系统是为存储和提供文件而构建的 - 它们非常擅长。但是,Blob总是在那里,以防止它让你的工作更轻松。我可以看到一些托管设置,将文件干扰到数据库将节省时间,精力,甚至可以帮助提高速度。 – 2011-05-11 04:44:15
@ hamlin11你是正确的,如果它只是几个文件。如果是用于某种文档存储区域,那么这样做会是一个很大的问题。 – 2011-05-11 04:51:21
文件大小由MySQL类型:
有MySQL中的BLOB几种类型,检查https://stackoverflow.com/a/43514588/1737158 – 2017-10-09 07:01:36