数据库

 首页 > 数据库 > SqlServer > Linux系统如何使PHP支持MSSQL数据库

Linux系统如何使PHP支持MSSQL数据库

分享到:
【字体:
导读:
         摘要:FreeTDS官方网站:http://www.freetds.org当前版本0.821.编译FreeTDS#tarzxvffreetds-0.82.tar.gz#cdfreetds-0.82//--with-tdsver8.0是指安装tds8.0版本(如果没有加这个参数,则按照默认编译为5.0。5.0连接数据库的端口是...

Linux系统如何使PHP支持MSSQL数据库

FreeTDS官方网站:http://www.freetds.org 当前版本0.82

1. 编译FreeTDS

# tar zxvf freetds-0.82.tar.gz
# cd freetds-0.82

//--with-tdsver=8.0是指安装tds 8.0版本(如果没有加这个参数,则按照默认编译为5.0。5.0连接数据库的端口是4000,而不是SQLServer的1433)
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0
# make
# make install

2. 编译PHP

使PHP支持MSSQL,可以使用两种方式,一种是直接编译进PHP,一种是编译成PHP可载入的模块。如果还没有编译安装PHP,建议使用前一种方式,因为这样PHP的执行速度快。如果已经安装了PHP,又嫌重新编译PHP麻烦,用后一种方式吧。

(1) 编译进PHP

要增加对MSSQL的支持,只要在编译参数上加上--with-mssql=/usr/local/freetds即可。

(2) 编译成模块

//进入php的源码目录、MSSQL模块源码目录
# cd /home/wxw/gd/php-5.2.5/ext/mssql/

//生成编译配置文件
# /usr/local/php/bin/phpize

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

在编译配置的时候可能会遇到找不到FreeTDS的错误:
configure: error: Directory /usr/local/freetds is not a FreeTDS installation directory
按照官方的解释(http://www.freetds.org/news.html),PHP检测一些文件以确定FreeTDS是否安装,由于新版的FreeTDS不再安装这些文件,导致PHP编译失败。只需建立两个空文件即可:
# touch /usr/local/freetds/include/tds.h
# touch /usr/local/freetds/lib/libtds.a

//将mssql.so添加到php.ini,路径在安装后会有提示
# vim /usr/local/php/lib/php.ini
extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/mssql.so"

# /usr/local/apache2/bin/apachectl restart

写个phpinfo()查看一下有没有mssql扩展

3. 中文问题

//在php.ini文件中加入mssql.charset = "GBK",读取正常,添加的时候用utf-8转gbk
# vim /usr/local/php/lib/php.ini
mssql.charset = "GBK"

4. 客户端测试(没多大意义)

//配置数据库连接信息,不用设置编码,就可以显示中文
# vim /usr/local/freetds/etc/freetds.conf

[sqlserver]
 host = 10.0.0.11
 port = 1433
 tds version = 8.0
//参数查看# tsql --help
# /usr/local/freetds/bin/tsql -H 10.0.0.11 -p 1433 -U ts -P tsst
1> use test
2> go
1> select * from tb
2> go
1> quit

5. 顺便提一下windows环境php中mssql扩展

1 把php.ini中的"extension=php_mssql.dll"前面的分号去掉
2 然后安装mssql的客户端或者复制ntwdblib.dll到system32中。(php压缩包里有)

然后在phpinfo()函数中看看没有mssql扩展。

Linux系统如何使PHP支持MSSQL数据库
分享到:
关于sql server数据库安装时动态端口的问...
关于sql server数据库安装时动态端口的问题 SQL Server动态端口问题在安装SQL2000和SQL2005安装过程中经常会遇到,下面就将对SQL Server动态端口问题作详尽的阐述,供您参考。 1,因为SQL2000安装过程中无法修改实例名称,故安装过程中必须先安装SQL2000,然后在安装SQL2005.安装SQL2005时必须修改SQL实例名称,否则...
解决PHP程序无法连接MSSQL数据库的问题
解决PHP程序无法连接MSSQL数据库的问题 今天配置了新服务器,配置是IIS+php,结果运行时发现php连接远程mssql数据库出错,出错 Warning: mssql_connect(): Unable to connect to server: 想想以前都是没问题的,怎么回事呢?后来去网上搜索,发现一篇文章,才发现原来服务器是需要安装mssql才能用php连接mssql的,本来...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……