LINUX下使用PHP连接MSSQL的方法

目录[-]

作者:Roban lee ([email protected])

LINUX下使用PHP连接MSSQL的方法有很多种,根据不同的环境,可以选择不同的方式,大致方法有以下几种:

  • 使用MSSQL.SO扩展
  • 使用PDO_LIB扩展
  • 使用PDO_ODBC扩展

如何安装MSSQL.SO

1. MSSQL.SO 扩展依赖一个外部包,即 freeTDS, FreeTDS 官网: http://www.freetds.org. 在官网下载最新的安装包后,执行以下命令安装(指定一个目录即可):

?


1

./configure --prefix=/usr/local/freetds

2.配置FREETDS

打开FREETDS的ect目录下的freetds.conf, 在文件末端加上:

?


1

2

3

4

[testServer]

host = 192.168.x.x   #你的SQL SERVER IP

port = 1433          #SQL SERVER PORT

tds version = 7.0

3. 进入PHP源码目录下的EXT目录,找到mssql目录,编译扩展

?


1

./configure --with-php-config=/usr/local/php/bin/php-config  --with-mssql=/usr/local/freetds

4. 安装完成后,执行以下命令将这个扩展添加到php的配置文件

?


1

echo extension=mssql.so >> PHP_INSTALL_PATH/lib/php.ini

5. 查看扩展是否已经载入.

?


1

php -m | grep mssql

6. 写一个脚本来测试是否正常载入 (mssql_connect第一个参数即刚刚配置的FREETDS中服务器名)

?


1

2

3

<?php

mssql_connect(‘testServer‘,‘SQL SIGNIN ACCOUNT‘, ‘PASSWORD‘) OR DIE (‘cannot connect msserver‘)

7. Done

如何安装PDO_LIB.SO

PDO_LIB的安装方法以及依赖包基本和MSSQL相同,唯一不同的是编译时候的参数,进入pdo_lib扩展包,安装时候的参数输入:

?


1

./configure --with-php-config=/usr/local/php/bin/php-config  --with-pdo-dblib=/usr/local/freetds

安装完成后,将pdo_lib.so加入配置文件,然后编写测试文件:

?


1

2

3

4

<?php

$dbh= new PDO("dblib:host=testServer;dbname=db","test","test");

var_dump($dbh);

如何安装PDO_ODBC.SO

PDO_ODBC这个扩展和上面2个扩展方式略有不同,依赖于2个包,一个是FREETDS,另一个是unixODBC,安装方法也有一些差异, 首先是需要安装unixODBC(下载地址:http://www.unixodbc.org/)

下载好后直接安装,安装完成后需要增加一项配置,在unixODBC/etc目录下的增加如下配置:

?


1

2

3

4

5

6

7

[testDSN]

Driver          = /usr/local/freetds/lib/libtdsodbc.so

Description      = First Test DSN

Trace           = No

Servername      = testServer   # 这个就是FREETDS里面配置的服务器信息

Database        = test

UID             = test

其次是FreeTDS的安装需要增加一个参数:

?


1

./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC

安装好FreeTDS后,进入扩展目录进行安装扩展:

?


1

./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-odbc=unixODBC,/usr/local/unixODBC

安装完成后,写一个脚本测试连接:

?


1

2

3

4

5

6

<?php

$dbh = new PDO(‘odbc:testDSN‘,‘test‘,‘test‘);

var_dump( $dbh );

All Done.

GOOD LUCK,

时间: 2024-10-17 21:39:09

LINUX下使用PHP连接MSSQL的方法的相关文章

Linux下用freetds连接mssql中文乱码的问题【参考2】

php5.3的情况下,用pdo的dblib驱动无法连接mssql的,根据官方的描述,5.2已经修改这个bug,5.3没有. 用php自带的mssql函数可以的.编译freetds,php_mssql,pdo_dblib参数如下: ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib./configure --with-php-config=/usr/local/php/bin/php-config -

Linux下用freetds连接mssql中文乱码的问题【参考1】

由于工作原因我们需要通过php访问我们以前的Sql Server 2005数据,所以就有了这篇文章的诞生.废话就少说了,做程序设计的最不喜欢兜圈子了.用简介步骤说明问题,往下看.系统:   Linux数据库: Sql Server 2005 1.下载FreeTDS  官方网站:http://www.freetds.org  2.安装FreeTDS# tar zxvf freetds-current.tgz(解压)# ./configure --prefix=/usr/local/freetds

linux下配置php扩展mssql

前言:linux下配置php扩展mssql,使php通过mssql工具实现和远程win SQL server数据的传递. 有两种方法: 一.第一次编译php时提供mssql支持,即在编译参数上加上--with-mssql=/path 二.对于己安装的php,需把mssql当成一个模块,编译php使其支持,本文主要讲解这种方法: 1.安装配置freetds 下载源码包,并编译安装 #wget  tp://ibiblio.org/pub/Linux/ALPHA/freetds/stable/free

linux下查看用户及用户组的方法

whois 功能说明:查找并显示用户信息. 语 法:whois [帐号名称] 补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions 的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别.    whois功能说明:查找并显示用户信息.语 法:whois [帐号名称]补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions 的WHOIS数据库去查找,所以该帐号名

Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式CentOS7-1810下实现

iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI分为服务端和客户端,服务端需要安装scsi target用来共享存储设备,客户端需要安装iscsi initiato

在Windows及Linux下获取毫秒级运行时间的方法

在Windows下获取毫秒级运行时间的方法 头文件:<Windows.h> 函数原型: /*获取时钟频率,保存在结构LARGE_INTEGER中***/ WINBASEAPI BOOL WINAPI QueryPerformanceFrequency( _Out_ LARGE_INTEGER * lpFrequency ); /*获取从某个时间点开始的时钟周期数,保存在结构LARGE_INTEGER中**/ WINBASEAPI BOOL WINAPI QueryPerformanceFreq

两种在linux下创建应用程序快捷方式的方法

两种在linux下创建应用程序快捷方式的方法: A. 在桌面上创建快捷方式 B. 在应用程序菜单中添加快捷方式 在桌面上创建快捷方式 这是最简单的一种方法,在桌面上单击鼠标右键,会有一个“创建启动器”栏.这里我以为mplayer创建快捷方式为例说明: 名称-mplayer(或者你喜欢的任何名称,这个名称会出现在快捷图标的 下方) 命令-/usr/bin/gmplayer(这个是mplayer的gui应用程序的执行文件,跟 安装路径相关,可以通过which gmplayer找到) 图标-一般应用程

linux下的静态连接库和动态链接库

对linux的静态连接库和动态链接库分不清楚,在看了一篇博文后,现在想做个自己的总结,以加深印象: 1.库的基本概念: 库是可执行代码的二进制形式,其可以被调入操作系统调入内存进行执行. 在window和linux系统,都存在各自的库,但是两种系统的库并不能兼容,因为它们的编译器,连接器,汇编器都是不相同的. 在windows下,静态连接库的后缀是.lib;动态链接库的后缀是.dll 在linux系统下,静态链接库的后缀是.a;动态链接库的后缀是.so 2.静态连接库和动态链接库的命名: 静态连

linux下编译php追加enable的方法

如果我们运行php时发现缺少某个库,在windows环境下很简单,找到.dll 对应的库文件,然后拷贝到 extension 目录下,然后在php.ini 里 去掉 前面的分号或者 追加一行 extension = XXXX.dll 即可. linux环境下,可不是像windows环境下那么的简单. 下面我们已 sysvmsg 这个库文件的安装为例 来详细说明php的编译方法 收件进入php的原始文件 比如我是下载在这个路径下: [[email protected] php-5.2.17]# c