首页 > 解决方案 > PHP 7.3 使用 PDO SQLSRV 返回奇怪的结果

问题描述

当我在不同版本的 PHP/PDO_SQLSRV 下运行下面的查询时,我得到了不同的结果。我觉得我错过了一些明显的东西,比如二进制编码设置?

$hex = '0x44';

$sSQL = "
DECLARE @hex nvarchar(6) = :hex
SELECT CONVERT(VARBINARY(2), @hex, 1) myTest
";

$stmt = $this->rms->prepare($sSQL);
$stmt->bindParam(':hex',$hex);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

print_r($result);

PHP 7.0.8 + php_pdo_sqlsrv 4.1.8819 的结果:

Array
(
    [0] => Array
        (
            [myTest] => 44
        )

)

PHP 7.3.4 + php_pdo_sqlsrv 5.6.1 的结果:

Array
(
    [0] => Array
        (
            [myTest] => D
        )

)

SQL Server 2008 R2 的结果:

SQL Server 2008 R2 的结果

标签: phpsql-server-2008sqlsrv

解决方案


推荐阅读