首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> PHP技巧 -> Linux下PHP连接MS SQLServer的办法
Linux下PHP连接MS SQLServer的办法


文章类别:PHP技巧 来源: 作者: 发表日期:2006-3-4 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真


提出问题

前几天做了一个非常奇怪的项目,我公司开发了一套基于中国联通SGIP协议的SP端短消息服务软件,提供联通130短信服务。这套系统是Windows 2000下的,数据库采用的是微软SQLServer2000,并且已经正常运行了一段时间。而最近由于要在WEB上提供短消息用户的一些信息,就需要从WEB上读写SQLServer数据库,本来SQLServer数据库的最佳搭档应该是微软IIS ASP服务端脚本,但我公司一向认为IIS+ASP的稳定性和安全性都不尽如意,希望能够在Linux下用PHP脚本读写SQLServer。

分析问题

本来PHP脚本读写SQLServer是没有什么问题的,在Apache for windows和Windows IIS下可以工作的很好,一般可以通过ODBC或SQLServer Client连接,这都是Windows下面现成的。但是在Linux下面没有现成的ODBC和SQLServer Client,需要我们自己安装。

解决问题

一、相关软件

freetds 来源:ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz

这个软件能够用Linux和Unix连接MS SQLServer和Sybase数据库。

二、安装配置步骤

第一步:编译安装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 install (安装)

关于上面configure我想说一下,--prefix=/usr/local/freetds是指安装到/usr/local/freetds这个目录中,--with-tdsver=7.0是指安装tds 7.0版本(最开是我没有加这个编译参数,结果按照默认编译为5.0。5.0连接数据库的端口是4000,不是SQLServer的1433)

第二步:重新编译PHP4

./configure [--with-apxs --with-mysql...] --with-sybase=/usr/local/freetds(请注意是sybase)

make

make install

第三步:配置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账号登陆两种方式

第四步:配置php.ini文件

找到 ;extension=mssql70.so

将注释;去掉成

extension=mssql70.so

第五步:在php中建立数据库连接

$link=mssql_connect("sqlserver",$your_username,$your_password) or die (“can’t Connect to Database”);

echo $link;

在浏览器中运行上面脚本, 如果你得到一个link号那么恭喜,你已经配置好了,如果出现Call to undefined function: mssql_connect() 那说明仔细看上面的安装配置过程看你哪一步没有对。

注意:sqlserver名称是在/usr/local/freetds/etc/freetds.conf中定义的host参数,如果你写的IP地址,就是IP地址。

其他数据库操作参考相关mssql函数

注意,在sql语句中不支持中文!!!

第六步:调试

如果出现不能连接,请在freetds配置文件中找到;dump file = /tmp/freetds.log这一行,注释掉前面的分号,再执行一下测试脚本,察看/tmp/freetds.log文件,它可以告诉你很多出错的信息帮助你排除问题。
(e129)

上一篇:抢鲜暴光!更多的QQ新版3D秀清晰图片! 下一篇:C#中构造函数和析构函数的用法
本栏目热门文章
·PHP SOCKET 技术研究 2005-10-4
·用php实现gb2312和unicode间的编码转换 2005-10-4
·实现一个基于Ajax的调查程序 2005-10-31
·WML,Apache,和 PHP 的介绍 2005-10-4
·用php或js获取图片大小,高宽尺寸. 2005-10-8
·LAMPJT最适用的web开发系统详细配置 2005-10-19
·PHP链接ACCESS数据库最简单的方法 2005-10-4
·Access数据库导入Mysql的方法之一 2005-10-4
·GraPHPite--PHP图像库新秀 2005-10-4
·解决RHAS3中Apache2的PHP上传文件大小的限制 2005-10-4
新近更新文章
·PHP5 OOP编程之代理与定制异常 2006-6-20
·PHP5中的this,self和parent关键字详解 2006-6-15
·理解PHP5中static和const关键字 2006-6-15
·利用PHP的OOP特性实现数据保护 2006-6-9
·用 PHPRPC 实现 Ajax 级联下拉菜单 2006-6-9
·基于PHP和AJAX创建RSS聚合器 2006-6-4
·WAP与PHP程序设计之基础篇 2006-6-4
·PHPUnit袖珍指南之命令行测试工具 2006-6-4
·通过PHP和Sajax使用Ajax之JavaScript 2006-6-4
·PHPUnit袖珍指南之安装PHPUnit 2006-6-4
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: