ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

PHP在linux下 连接MSSQL

2022-01-20 14:34:20  阅读:194  来源: 互联网

标签:contents sqlsrv comments echo stmt linux PHP MSSQL conn


<?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就可以了

标签:contents,sqlsrv,comments,echo,stmt,linux,PHP,MSSQL,conn
来源: https://www.cnblogs.com/BTag/p/15826181.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有