如何在MySQL数据库中插入文件?

mee*_*tpd 28 mysql sql database

我想使用webservice在驻留在远程Web服务器上的MYSQL数据库中插入一个文件.

我的问题是:什么类型的表列(例如varchar等)将存储文件?如果是文件,insert语句会有些不同吗?

Bri*_*ter 25

BLOB数据类型最适合存储文件.


Luk*_*kas 15

MySQL类型的文件大小:

  • TINYBLOB 255字节= 0.000255 Mb
  • BLOB 65535字节= 0.0655 Mb
  • MEDIUMBLOB 16777215字节= 16.78 Mb
  • LONGBLOB 4294967295字节= 4294.97 Mb = 4.295 Gb


Dan*_*ang 12

您需要使用BLOB,有TINY,MEDIUM,LONG和BLOB,与其他类型一样,根据您的尺寸需求选择一个.

TINYBLOB 255
BLOB 65535
MEDIUMBLOB 16777215
LONGBLOB 4294967295
(in bytes)
Run Code Online (Sandbox Code Playgroud)

insert语句相当正常.您需要使用fread然后读取文件addslashes.

  • hamlin11发布的链接(PHP示例)显示了文件读取和插入语句的示例. (2认同)
  • `addslashes` ?? 我敢打赌,在使用mysql驱动程序的所有重要语言中,都支持预处理语句(最有可能更安全)... (2认同)

Dav*_*ele 12

其他答案会让你知道如何完成你所要求的......

然而

在这种情况下,这不是一个好主意.通常最好只存储数据库中的文件名和文件系统上的文件.

这样,您的数据库就会小得多,可以更轻松地传输,更重要的是可以更快地进行备份/恢复.

  • 我完全同意这一点。文件系统是为存储和提供文件而构建的——它们在这方面非常擅长。但是,Blob 始终存在,以防它使您的工作更轻松。我可以看到一些托管设置,其中将文件干扰到数据库可以节省时间、精力,甚至可能有助于提高速度。 (2认同)