Php 如何使用SQL Server(Server Management Studio)存储和检索图像
尝试将文件插入SQL Server数据库时遇到困难。我会尽我所能将其分解:Php 如何使用SQL Server(Server Management Studio)存储和检索图像,php,sql,sql-server,image,Php,Sql,Sql Server,Image,尝试将文件插入SQL Server数据库时遇到困难。我会尽我所能将其分解: 我应该使用什么数据类型来存储图像文件(jpeg/png/gif/etc)?现在我的表使用的是image数据类型,但我很好奇varbinary是否是更好的选择 如何将图像插入数据库?Microsoft SQL Server Management Studio是否具有允许将文件插入表的内置函数?如果是,如何做到这一点?另外,如何通过使用HTML表单和PHP处理输入数据并将其放入表中来实现这一点 如何从表中获取图像并将其显示在
image
数据类型,但我很好奇varbinary
是否是更好的选择非常感谢所有帮助。命令行提供了可接受的批量插入util。有关如何通过t-SQL将二进制数据插入MS SQL的详细信息,请阅读。图像类型已弃用,因此不要使用该类型 简而言之,如果是SQL 2008,则使用
FILESTREAM
类型;如果是2005年或更早,则使用varbinary(max)
类型
如果是SQL 2008,更好的答案是使用FILESTREAM
类型,否则根本不在数据库中存储图像。数据库不是为这种类型的东西而构建的,在其中抛出blob会严重影响性能FILESTREAM
通过将实际数据存储在文件系统上来回避问题;其他一切都是不合标准的解决方案
至于如何读写
varbinary
列,如果您选择采用这种非理想的方法,它将在PHP中表示为流。这是作为列值从查询中得到的,我相信这是作为参数必须输入的。我们使用的是SQL Server 2008,但下拉列表中似乎没有FILESTREAM
类型。如果varbinary
有效,那么就必须这样做。主要关注的是如何将图像插入表中。感谢您注意到该图像类型已被弃用,因为我正倾向于该路线。:)@Joe Majewski:FILESTREAM在SQL Server 2008的所有版本中都可用。当您有FILESTREAM时,不要使用varbinary
。您不必在下拉列表中看到它-请参阅此处的入门指南:好的,我现在正在研究它。意识到我正在处理一个“真实”数据库的副本,因为我没有访问所有数据的特权,所以我希望创建一个支持filestream的数据库在上线时不会引起问题。这是一个关于filestream的伟大讨论,还链接到MS Research,主题是在2005 DB中存储图像(结果<256k良好,>1mb不良,YMMV):哦,我真的很喜欢公用设施的工作方式,但这并不完全是我所需要的。基本上,我正在为北伊利诺伊大学编写一份申请书,该申请书存储了居住在宿舍的每个学生的照片。当学生试图在前台办理入住手续时,工作人员可以通过电话确认他们实际上是学生正在验证图片是否匹配。我不打算在数据库中插入任何这些图片。我只需要能够成功插入单个图像以进行测试,以确保我可以正确检索它。是否存在仅在硬盘上使用单个路径的插入?