php链接数据库2000,php访问sql server 2000

Windows下PHP连接SQL Server 2000 可以用一个”容易”来形容。

1.打开php.ini, 找到下面这行

;extension=php_mssql.dll

去掉前面的分号,变成

extension=php_mssql.dll

2.确认php.ini内extension_dir制定的目录里面有php_mssql.dll文件

3.重启web server

4.检查php_info() 确定有下面行:

5. Done

Linux下完成同样的事情稍显复杂一些,毕竟SQL Server 是 MS的东东。

1.需要额外安装一个叫“FreeTDS”的的开源软件,可以到下载最新版本,我下载时的最新版本为0.82,

文件名:freetds-stable.tgz, 该软件的官方说明是这样的:

FreeTDS is a set of libraries for Unix and Linux that allows

your programs to natively talk to Microsoft SQL Server and Sybase

databases.

2.解压安装命令:

tar zxvf freetds-stable.tgz

cd freetds-0.82

./configure –pre-fix=/usr/local/freetds

–with-tdsver=7.0  //关于–with-tdsver,官方说明是: normally

5.0 for Sybase and 7.0 for Microsoft

make

make install

3. 测试freetds

用下面格式的命令:

/usr/local/freetds/bin/tsql -S servername -p port -U username -P

password

测试看能否连接sql server

4.重新编译PHP,

我重新编译时,一般先php_info()看一下当前的编译条件,copy过来,再加上我需要添加的编译条件

./configure –你之前的编译条件 –with-mssql=/usr/local/freetds

5. 编译错误排除,我在编译的时候出现下面错误

configure: error: Directory /usr/local/freetds is not a FreeTDS

installation directory

需要新建两个文件:

$ touch /usr/local/freetds/include/tds.h

$ touch /usr/local/freetds/lib/libtds.a

6. make & make install

7. 重启web server

PHP测试,用下面代码:

配置文件:/usr/local/freetds/etc/freetds.conf

[yourserver]

host =

192.168.0.X

port =

1433

tds Version

= 8.0

client

charset = UTF-8

(client charset = UTF-8

因为freetds不支持GB2312字符集,要想正确显示中文只能使用UTF-8字符集。在这个配置文件中可以配置Windows域登陆或者SQLServer账号登陆两种方式

)

测试连接:/usr/local/freetds/bin/tsql -S yourserver -U XX -P

XXXXXX

/usr/local/freetds/bin/tsql -H 192.168.0.X -p 1433 -U XX -P

XXXXXX

所需软件:

Freetds目前最新的版本是0.82,在本文中使用的是0.62.3版的源码包。

主页地址为:

下载地址为:

当然我们还要用到Apache和PHP,本文中二者的版本和下载地址如下:

Apache :最新版本为2.2.0,本文中使用的为2.2.0版本。

下载地址:

PHP:最新版本为5.2.3本文中使用的是4.4.2

下载地址为:

现在我们开始安装,安装的顺序是Freetds,Apache,PHP。如果你还要使用Mysql哪你需要在PHP之前安装。具体安装如下:

1、Freetds的安装

[root@test]# tar –zxvf freetds-0.62.3.tar.gz

[root@test]# cd freetds-0.62.3

[root@test]# ./configure \

>--prefix=/usr/local/freetds

\

>--with-tdsver=8.0

\

>--enable-msdblib

{设定freetds支持Msdblib,好像可以不用}

[root@test]# make

[root@test]# make install

关于上面configure,--prefix=/usr/local/freetds是指安装到/usr/local/freetds这个目录中,--with-tdsver=8.0是指安装tds

8.0版本(指定freetds运行版本为8.0支持Ms SQL Server

2000,我没有加这个编译参数,结果按照默认编译为5.0。5.0连接数据库的端口是4000,不是SQLServer的1433,详细版本对应请访问tds.html)

2、Apache的安装

[root@test] # cd httpd-2.2.0

[root@test] # ./configure \

>--enable-so

\

{让Apache支持模块动态加载}

>--enable-ssl=share

\

{让Apache支持ssl }

>--enable-rewrite=share

\

{让Apache支持URL重写 }

>--enable-track-vars

\

{ 启动cookie的get/post等追踪功能}

>--prifix=/usr/local/apache2

\

{指定Apache的安装目录为/usr/local/apache2}

[root@test] # make

[root@test] # make install

[root@test] # /usr/local/apache2/bin/apachectl start

在浏览器中地址中输入 如果看到It works! 证明Apache安装成功。

3、Php的安装

[root@test] # tar –zxvf php-4.4.2.tar.gz

[root@test] # cd php-4.4.2

[root@test] # ./configure \

>--prefix=/usr/local/php

\

{指定PHP的安装目录为/usr/local/php}

>--with-mssql=/usr/local/freetds

\

{设定PHP支持MSSQL的安装目录}

>--with-apxs2=/usr/local/apache2/bin/apxs \

>--with-config-file-path=/usr/local/php/etc \

>--enable-track-vars \

>--enable-force-cgi-redirect \

>--with-mhash

{支持哈希算法,诸如MD5等}

[root@test] # make

[root@test] # make install

[root@test] # cp php.ini-dist /usr/local/php/etc/php.ini

若已经安装过php请重新编译php并配置php.ini文件

找到 ;extension=mssql80.so

将注释;去掉成

extension=mssql80.so

4、Freetds配置

[root@test] # cd /usr/local/freetds/etc

[root@test] # vi freetds.conf

;[myServer2K]

;   host =

ntmachin.domain.com

;   port = 1433

;   tds Version = 8.0

去掉分号改为

[192.168.1.110]

host =

192.168.1.110

{192.168.1.9为MS SQL

Server数据库的IP地址,当然域名也可以,这里方括号中的要与host后面的必须一样}

port = 1433

tds Version = 8.0

client charset = UTF-8

(client charset = UTF-8

因为freetds不支持GB2312字符集,要想正确显示中文只能使用UTF-8字符集。在这个配置文件中可以配置Windows域登陆或者SQLServer账号登陆两种方式

)

5、Apache配置

[root@test] # cd /usr/local/apache2/conf

[root@test] # vi httpd.conf

找到“LoadModule php4_module

modules/libphp4.so”一行,在下面添加

“AddDefaultCharset UTF-8”

(因为freetds不支持GB2312字符集,要想正确显示中文只能使用UTF-8字符集。)

(如果没有找到这一行请检查/usr/local/apache2/modules下是否有libphp4.so文件,如果有请手动添加,如果没有请重新编译安装PHP。)

找到“”项,在“AddType application/x-gzip .gz

.tgz”一行下面添加:“AddType application/x-httpd-php .php”。

6、PHP配置

[root@test] # cd /usr/local/php/etc

[root@test] # vi php.ini

找到“;default_charset = "iso-8859-1"”一行,去掉分号改为default_charset =

"UTF-8",保存退出。

(因为freetds不支持GB2312字符集,要想正确显示中文只能使用UTF-8字符集。)

7、Freetds运行测试

freetds安装配置完成后,运行/usr/local/freetds/bin/tsql –S 192.168.1.9 –U sa

后显示:

locale is "zh_CN.GB2312"

locale charset is "GB2312"

Password:

输入密码后显示

1>

哈,你已经连接上MS SQL Server数据库了。

8、Apache运行测试

[root@test] # cd /usr/local/apache/bin/apachectl start

如果没有提示任何错误,应该是正常运行了。如果你还没有配置完PHP,在浏览器的地址栏里输入http://服务器IP地址,会显示It’s

Works!。如果你配置了PHP,输入http://服务器IP地址/测试php文件名称,就应该会显示你所希望看到的内容。

9、PHP运行测试

启动Apache,编写一个文件test.php,内容为,传到Apache的文档目录下,在浏览器的地址栏里输入http://服务器IP/test.php.

这时你应该能够看到Apache和PHP的配置信息,同时你还能看到PHP支持mssql的信息,显示如下:

10、PHP连接MS SQL Server测试

编写如下代码:

如果显示成功,那你当然是连接成功了,如果在访问数据表时,显示的是乱码,那一定是字符集的问题,看看那里没有设置正确,最稳妥的办法是将每一个网页的charset都设置成UTF-8。

如果出现不能连接,请在freetds配置文件中找到;dump file =

/tmp/freetds.log这一行,注释掉前面的分号,再执行一下测试脚本,察看/tmp/freetds.log文件,它可以告诉你很多出错的信息帮助你排除问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值