微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP在linux下 连接MSSQL

<?PHP
$serverName = "192.168.2.251,2434";
$connectionInfo = array( "Database"=>"jfdf40", "UID"=>"sa", "PWD"=>"932kj");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

//$stmt = sqlsrv_query( $conn, 'SET TEXTSIZE 80000' );
$sql = "SELECT msg FROM test";
$stmt = sqlsrv_query( $conn, $sql );

if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}


while ( sqlsrv_fetch( $stmt))  
{  
        $comments = sqlsrv_get_field( $stmt, 0,   
                            sqlSRV_PHPTYPE_STREAM(sqlSRV_ENC_BINARY));
        //echo get_resource_type ($comments);
        $contents = '';
        while (!feof($comments)) {
          $contents .= fread($comments, 8192);
        }
        $s = (mb_convert_encoding(($contents), 'utf-8', 'gbk'));
        echo $s . PHP_EOL;
        echo mb_strlen($s);
        echo "\n";   
}  

mssql 一般在我们中国认排序规则都是 Chinese_PRC_CI_AS

查询用,得到代码页是963=BGK

sELECT DATABASEPROPERTYEX('databasename', 'Collation') sqlCollation;

SELECT  COLLATIONPROPERTY('Chinese_PRC_CI_AS', 'CodePage')

PHP在linux 下连接mssql  读取中文会有问题,这里采用流读取的方式以2进制形式读回来。再把gbk转成utf-8就可以了

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐