2016年7月

最近在弄公司的微信服务号,忽然冒出个想法,想把微信和医疗系统结合一下,让用户能直接在微信上查到自己在医院的资料。

for example几号来的医院,咨询的什么项目,哪个医生接待的,消费了多少钱,什么时候需要去复诊,该跟谁约会,该跟谁搞基。。。

 

心里这么一想似乎能两边都方便点,而且也对吸粉有一点的作用

说干就干。

先说一下环境吧

医院这边用的是一套客户端的服务系统,叫宏脉,具体不解释了。用的是mssql的数据库,服务器就扔在医院的某个阴暗的小角落,装了花生壳,指定了端口对公网开放

而搭载了微擎的那边用的是windows2008的阿里云,我用了西数的网站助手,个人感觉手感还不错,可以一键创建站点数据库之类的。还可以一键安装php5.2到5.5的环境,颇为顺手。

环境解释完了,那么问题来了,如何用php远程调用mssql的数据呢?

中间各种曲折离奇的故事我就不多加赘述了,直接指明道路。

 

第一步开放mssql的远程访问

这个简单,网上一大坨教程,个人建议单独加一个远程调用的账户,我百度了一个传送门http://jingyan.baidu.com/article/6c67b1d6ca06f02787bb1ed1.html

第二步让php支持mssql

因为微擎要求的php版本比较高,而mssql在高于5.3的php就TM不再支持mssql了,得插点东西才行。

来来,我告诉你们要插点什么

 

第三步,好了该装的装了是时候改一下配置文件了

打开php目录下的php.ini

有仇的报仇,有怨的。。不是

;extension=php_sqlsrv.dll
;extension=php_pdo_sqlsrv.dll

这两句的就把前边的;去掉,没有的就补上这两句

再加个

[PHP_PDO_SQLSRV] 
extension = php_pdo_sqlsrv_54_nts.dll 
[PHP_SQLSRV] 
extension = php_sqlsrv_54_nts.dll

根据自己的环境来nts就是非安全线程,ts就是安全。如果不知道了就都试试。

到这里差不多了

第四步,测试

<?
/*连接数据库,5.4的函数不再是mssql_connect了:*/
$conInfo=array('Database'=>'osbst', 'UID'=>'sa', 'PWD'=>'123456');
$conn=sqlsrv_connect('192.168.1.208', $conInfo);
/*判断连接成功与否:*/
if( $conn == false )
{
    die( print_r( sqlsrv_errors(), true));
}
else
{
    echo("yes<br>");
}
$table_name = 'table_name';
/*如果你牛叉的数据库表名是中文,记得加上这句:*/
$table_name = iconv('UTF-8', 'GB2312', '牛叉的中文表名'); 
/*query语句:*/
$rs=sqlsrv_query($conn, "select * from ".$table_name);
if($rs == false)
{
    echo("false<br>");
}
else
{
    while($row = sqlsrv_fetch_array($rs))

    {
        print_r($row);
    }
    sqlsrv_free_stmt($rs);
    sqlsrv_close($conn);
}

?>

输出数组了说明成功了~

 

完结撒花