Kei*_*ino 6 php sql-server odbc
我在SQL Server 2005数据库中有一个varbinary(MAX)字段.我试图弄清楚如何使用PHP将二进制数据(即图像)插入到该字段中.我正在使用ODBC连接到SQL Server数据库.我已经看到了许多解释这个用于MySql数据库的例子,但是我无法让它与SQL Server一起使用.谢谢.
Per*_*ana 18
function prepareImageDBString($filepath)
{
$out = 'null';
$handle = @fopen($filepath, 'rb');
if ($handle)
{
$content = @fread($handle, filesize($filepath));
$content = bin2hex($content);
@fclose($handle);
$out = "0x".$content;
}
return $out;
}
Run Code Online (Sandbox Code Playgroud)
用法:
$out = prepareImageDBString('/img/myimg.png');
mssql_query("INSERT INTO MyTable(MyImage) VALUES($out) ");
Run Code Online (Sandbox Code Playgroud)
MyImage是SQL Server字段,其类型为image
Tra*_*isO -4
简单的答案是:停止你正在做的事情。
您不想将二进制文件存储在数据库中,除非您有一些非常具体的安全问题。相反,您想要存储它们的文件名(可能重命名文件以防止冲突),然后将其存储在数据库中。如果安全是一个问题,则将它们放在非 Web 文件夹中,并使用您的代码检索文件,并且仅在用户有权访问该文件时才提供该文件。
在数据库中存储图像或文件是对文件空间的浪费,是对数据库的误用,并且不能让事情发挥其最佳作用;文件系统知道文件,数据库知道数据。
| 归档时间: |
|
| 查看次数: |
12576 次 |
| 最近记录: |