使用 PHP 将图像存储到 SQL 服务器

Store image to SQL Server using PHP

我正在尝试使用 PHP

将图像保存到 SQL 服务器数据库中
CREATE TABLE [dbo].[ImageList](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Image] [varbinary](max) NULL,
[FactID] [varchar](50) NULL,

我的代码是:

$img_data = (file_get_contents($_FILES['glryimage']['tmp_name']));
$tsql = "INSERT INTO dbo.ImageList (
            FactID,
            Image) 
            VALUES
            (?, ?)";
$var = array($FactID, $img_data);

if (!sqlsrv_query($conn, $tsql, $var)) {
    if( ($errors = sqlsrv_errors() ) != null) {
        foreach( $errors as $error ) {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
            echo "message: ".$error[ 'message']."<br />";
        }
    }
} else {
}

当尝试插入数据库时​​出现错误

SQLSTATE: IMSSP
message: An error occurred translating string for input param 4 to UCS-2: No mapping for the Unicode character exists in the target multi-byte code page.

请问如何存储图像。

提前致谢。

这可能是由于 UTF-8UTF-16 字符编码可能不受服务器支持 bin2hex PHP 功能可能会解决问题,只需给试试看

$img_data = bin2hex(file_get_contents($_FILES['glryimage']['tmp_name']));

使用 PHP 文档作为参考。

bin to hex

hex to bin