php调用远程mssql服务器
最近在弄公司的微信服务号,忽然冒出个想法,想把微信和医疗系统结合一下,让用户能直接在微信上查到自己在医院的资料。
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了,得插点东西才行。
来来,我告诉你们要插点什么
- 先插个扩展库http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 硬不起来的官网表示有提供下载,根据自己的PHP版本下载相应的扩展库(放到PHP的ext文件夹下)
- 缺DLL的插DLL,我这里是5.4的我就只提供5.4缺失的dll裤了http://pan.baidu.com/s/1czFCtS(同样放到PHP的ext文件夹下)
- 装个Microsoft SQL Server 2012 Native Client
;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); } ?>输出数组了说明成功了~ 完结撒花
aaaaaaaa