Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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 将二进制数据传递到SQL Server 2008中的存储过程_Php_Sql_Sql Server_Bulkinsert_Binary Data - Fatal编程技术网

Php 将二进制数据传递到SQL Server 2008中的存储过程

Php 将二进制数据传递到SQL Server 2008中的存储过程,php,sql,sql-server,bulkinsert,binary-data,Php,Sql,Sql Server,Bulkinsert,Binary Data,我想找出一种在数据库中存储文件的方法。我知道建议将文件存储在文件系统而不是数据库中,但我正在从事的工作更倾向于使用数据库存储这些图像(文件) 还有一些限制。我不是管理员用户,我必须创建存储过程来执行所有命令。到目前为止,这并没有太大的困难,但我无法在我的一生中建立一种在数据库中存储文件(图像)的方法 当我尝试使用BULK命令时,我收到一个错误,提示“您没有使用BULK load语句的权限”。BULK实用程序似乎是将文件上载到数据库的简单方法,但如果没有权限,我必须找到一个解决方案 我决定使用带有

我想找出一种在数据库中存储文件的方法。我知道建议将文件存储在文件系统而不是数据库中,但我正在从事的工作更倾向于使用数据库存储这些图像(文件)

还有一些限制。我不是管理员用户,我必须创建存储过程来执行所有命令。到目前为止,这并没有太大的困难,但我无法在我的一生中建立一种在数据库中存储文件(图像)的方法

当我尝试使用BULK命令时,我收到一个错误,提示“您没有使用BULK load语句的权限”。BULK实用程序似乎是将文件上载到数据库的简单方法,但如果没有权限,我必须找到一个解决方案

我决定使用带有文件上传输入类型的HTML表单,并用PHP处理它。PHP调用存储过程并传入文件的内容。问题是,现在它说一个参数的最大长度只能是128个字符

现在我完全被卡住了。我没有使用bulk命令的权限,而且我可以传递给SP的参数的最大长度似乎是128个字符

我本以为会遇到问题,因为二进制字符和ascii字符不能很好地混合在一起,但我已经走到了死胡同

谢谢大卫·海登的博客

这是一个c#示例,但在PHP中的步骤应该类似:

  • 将上载的文件转换为字节数组
  • 在服务器上执行动态TSQL
  • 在大卫·海登的博客上

    这是一个c#示例,但在PHP中的步骤应该类似:

  • 将上载的文件转换为字节数组
  • 在服务器上执行动态TSQL

  • 通常,我们不会在SQL中传递二进制数据。我们将文件上载到服务器,然后将图像从服务器加载到数据库中

    将图像从文件加载到数据库中:

    UPDATE images
    SET image = LOAD_FILE('images/myimage.jpg')
    WHERE image_id = 1234
    
    将图像返回到文件:

    SELECT image
    INTO DUMPFILE 'images/myimage.jpg'
    FROM images
    WHERE image_id = 1234
    

    通常,我们不会在SQL中传递二进制数据。我们将文件上载到服务器,然后将图像从服务器加载到数据库中

    将图像从文件加载到数据库中:

    UPDATE images
    SET image = LOAD_FILE('images/myimage.jpg')
    WHERE image_id = 1234
    
    将图像返回到文件:

    SELECT image
    INTO DUMPFILE 'images/myimage.jpg'
    FROM images
    WHERE image_id = 1234
    

    问题已经问了好几次了……我已经被这个问题困扰了几天,我四处寻找答案,甚至问了另一个类似的问题。问题已经问了好几次了……我被这个问题困扰了几天,我四处寻找答案,甚至问了另一个问题类似的问题。谢谢你的例子。我要去参加一个会议来解决这个问题,因为现在我认为我没有正确的权限让它工作。这个答案应该有更多的细节-链接的文章现在已经没有了。链接不再有效了。谢谢你的例子。我要去参加一个会议来解决这个问题,因为现在我认为我没有正确的权限让它工作。这个答案应该有更多的细节-链接的文章现在已经不存在了。链接不再有效