前几天做了个非常奇怪项目我公司开发了套基于中国联通SGIPSP端短消息服务软件Software提供联通130短信服务这套系统是 2000下数据库采用是微软SQLServer2000并且已经正常运行了段时间而最近由于要在WEB上提供短消息用户些信息就需要从WEB上读写SQLServer数据库本来SQLServer数据库最佳搭档应该是微软IIS ASP服务端脚本但我公司向认为IIS+ASP稳定性和性都不尽如意希望能够在Linux下用PHP脚本读写SQLServer
分析问题
本来PHP脚本读写SQLServer是没有什么问题在Apache for windows和 IIS下可以工作很好般可以通过ODBC或SQLServer Client连接这都是Windows下面现成但是在Linux下面没有现成ODBC和SQLServer Client需要我们自己安装
解决问题
、相关软件Software
freetds 来源:ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
这个软件Software能够用Linux和Unix连接MS SQLServer和Sybase数据库
2、安装配置步骤
第步:编译安装freetds:
得到freetds-0.53.tgz后
cp freetds-0.53.tgz /tmp/. (拷贝freetds包到/tmp目录)
cd /tmp (进入目录)
tar zxvf freetds-0.53.tgz (解压)
cd freetds-0.53 (进入解压后目录)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (生成Makefile我试验过make也可以)
gmake (安装)
有关上面configure我想说下--prefix=/usr/local/freetds是指安装到/usr/local/freetds这个目录中--with-tdsver=7.0是指安装tds 7.0版本(最开是我没有加这个编译参数结果按照默认编译为5.05.0连接数据库端口是4000不是SQLServer1433)
第 2步:重新编译PHP4
./configure [--with-apxs --with-mysql...] --with-sybase=/usr/local/freetds(请注意是sybase)
make
make
第 3步:配置freetds
vi /usr/local/freetds/etc/freetds.conf
具体配置见该文件中介绍说明
例: (典型配置)
[sqlserver]
host = sql_server_name_or_host_ip (你SQLServer机器名字或者IP地址)
port = 1433
tds version = 7.0
在这个配置文件中可以配置Windows域登陆或者SQLServer账号登陆两种方式
第 4步:配置php.ini文件
找到 ;extension=mssql70.so
将注释;去掉成
extension=mssql70.so
第 5步:在php中建立数据库连接
$link=mssql_connect("sqlserver",$your_username,$your_password) or die (“can’t Connect to Database”);
echo $link;
在浏览器中运行上面脚本 如果你得到个link号那么恭喜你已经配置好了如果出现Call to und function: mssql_connect 那介绍说明仔细看上面安装配置过程看你哪步没有对
注意:sqlserver名称是在/usr/local/freetds/etc/freetds.conf中定义host参数如果你写IP地址就是IP地址
其他数据库操作参考相关mssql
注意,在sql语句中不支持中文!!!
第 6步:调试
如果出现不能连接请在freetds配置文件中找到;dump file = /tmp/freetds.log这行注释掉前面分号再执行下测试脚本察看/tmp/freetds.log文件它可以告诉你很多出错信息帮助你排除问题
分析问题
本来PHP脚本读写SQLServer是没有什么问题在Apache for windows和 IIS下可以工作很好般可以通过ODBC或SQLServer Client连接这都是Windows下面现成但是在Linux下面没有现成ODBC和SQLServer Client需要我们自己安装
解决问题
、相关软件Software
freetds 来源:ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
这个软件Software能够用Linux和Unix连接MS SQLServer和Sybase数据库
2、安装配置步骤
第步:编译安装freetds:
得到freetds-0.53.tgz后
cp freetds-0.53.tgz /tmp/. (拷贝freetds包到/tmp目录)
cd /tmp (进入目录)
tar zxvf freetds-0.53.tgz (解压)
cd freetds-0.53 (进入解压后目录)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (生成Makefile我试验过make也可以)
gmake (安装)
有关上面configure我想说下--prefix=/usr/local/freetds是指安装到/usr/local/freetds这个目录中--with-tdsver=7.0是指安装tds 7.0版本(最开是我没有加这个编译参数结果按照默认编译为5.05.0连接数据库端口是4000不是SQLServer1433)
第 2步:重新编译PHP4
./configure [--with-apxs --with-mysql...] --with-sybase=/usr/local/freetds(请注意是sybase)
make
make
第 3步:配置freetds
vi /usr/local/freetds/etc/freetds.conf
具体配置见该文件中介绍说明
例: (典型配置)
[sqlserver]
host = sql_server_name_or_host_ip (你SQLServer机器名字或者IP地址)
port = 1433
tds version = 7.0
在这个配置文件中可以配置Windows域登陆或者SQLServer账号登陆两种方式
第 4步:配置php.ini文件
找到 ;extension=mssql70.so
将注释;去掉成
extension=mssql70.so
第 5步:在php中建立数据库连接
$link=mssql_connect("sqlserver",$your_username,$your_password) or die (“can’t Connect to Database”);
echo $link;
在浏览器中运行上面脚本 如果你得到个link号那么恭喜你已经配置好了如果出现Call to und function: mssql_connect 那介绍说明仔细看上面安装配置过程看你哪步没有对
注意:sqlserver名称是在/usr/local/freetds/etc/freetds.conf中定义host参数如果你写IP地址就是IP地址
其他数据库操作参考相关mssql
注意,在sql语句中不支持中文!!!
第 6步:调试
如果出现不能连接请在freetds配置文件中找到;dump file = /tmp/freetds.log这行注释掉前面分号再执行下测试脚本察看/tmp/freetds.log文件它可以告诉你很多出错信息帮助你排除问题