`
wangshaofei
  • 浏览: 282377 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux下php链接sqlserver数据库

阅读更多

编译资料 http://www.linuxidc.com/Linux/2008-02/11117.htm

 

提出问题

  前几天做了一个非常奇怪的项目,我公司开发了一套基于中国联通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文件,它可以告诉你很多出错的信息帮助你排除问题。

 

 

 

PHP连接Microsoft SQL Server数据库
此页由Linux Wiki用户Chenxing于2008年2月9日 (星期六) 07:31的最后更改。
出自Linux Wiki
在Windows中PHP可以使用mssql系列函数访问Microsoft SQL Server。在Linux服务器中,通过PHP连接Microsft SQL Server主要有两种方法。

提示:
在系统中直接连接MSSQL的方法见连接Microsoft SQL Server数据库。
目录
 [隐藏]
1 基本原理
2 方法一(db-lib)
2.1 Debian、Ubuntu等
2.2 其它发行版
3 方法二(ODBC)
4 相关资料
 
基本原理
FreeTDS为Linux系统提供了TDS协议的开源客户端。由于MS SQL和Sybase使用的恰是TDS协议,所以在Linux中可以用FreeTDS连接MS SQL。[1]

下面介绍两种方法:

方法一(db-lib)
使用该方法配置后的代码与Windows中相同,可以使用如下代码:[2]

<?php
$msconnect=mssql_connect("服务器","用户名","密码");
$msdb=mssql_select_db("数据库名",$msconnect);
$msquery = "select titleofcourtesy from employees";
$msresults= mssql_query($msquery);
while ($row = mssql_fetch_array($msresults)) {
       echo "<li>$row['titleofcourtesy']</li>\n";
}
?>配置的过程:

Debian、Ubuntu等
可以用php的db-lib连接,在Debian Based系统中(如Debian、Ubuntu等),操作很简单:

$ sudo apt-get install php5-sybase
apt-get会自动寻找依赖的包进行安装。重新启动apache即可:

$ sudo /etc/init.d/apache2 restart



其它发行版
如果使用其它发行版,请先找一下发行版是否提供了类似的包,如果没有,就需要重新编译PHP:[3]

先编译freetds:

$ ./configure --prefix=/usr/local/freetds
$ make
$ su root
Password:
$ make install
再编译PHP

$ cd php
$ ./configure --with-sybase=/usr/local/freetds
$ make
$ su root
Password:
$ make install
方法二(ODBC)
先配置系统的ODBC,再使用PHP的odbc驱动连接(需要PHP中编译了odbc驱动,debian系统要安装 php5-odbc)。

配置ODBC的方法见连接Microsoft SQL Server数据库。

配置后可用如下代码连接:

<?php
// connect to DSN MSSQL with a user and password
$connect = odbc_connect("MSSQLServer", "username", "password") or die
  ("couldn't connect");
odbc_exec($connect, "use Northwind");
$result = odbc_exec($connect, "SELECT CompanyName, ContactName " .
        "FROM Suppliers");
while(odbc_fetch_row($result)){
  print(odbc_result($result, "CompanyName") .
        ' ' . odbc_result($result, "ContactName") . "<br>\n");
}
odbc_free_result($result);
odbc_close($connect);
?>相关资料
↑ http://www.freetds.org/
↑ http://www.phpv.net/html/1537.html
↑ http://www.freetds.org/userguide/php.htm#PHPDBLIB
取自"http://linux-wiki.cn/index.php?title=PHP%E8%BF%9E%E6%8E%A5Microsoft_SQL_Server%E6%95%B0%E6%8D%AE%E5%BA%93&variant=zh-cn"

分享到:
评论
1 楼 hdl2097 2011-10-27  
有没有LAMPP环境链接sql server2000的解决办法啊。

相关推荐

    Linux平台下访问Windows平台的SQL Server数据库的方法.pdf

    Linux平台下访问Windows平台的SQL Server数据库的方法 Linux操作系统作为微软Windows的主要竞争对手,已经在服务器领域取得了不小的成就。许多大型数据库厂商也纷纷推出了Linux版本的数据库管理系统,但是微软的SQL...

    Linux Php连接SQLServer数据库

    它是 Linux 下连接 SQL Server 数据库的重要工具。 1. **下载FreeTDS** 首先访问 FreeTDS 官方网站 [http://www.freetds.org](http://www.freetds.org) 下载最新版本的 FreeTDS 源码包。 2. **解压并编译安装** ...

    PHP连接sqlserver数据库

    在PHP编程中,连接到SQL Server数据库是一项常见的任务,尤其对于那些使用PHP作为后端语言,而数据库系统选择SQL Server的项目。以下是一份详细的知识点解析,涵盖了PHP连接SQL Server所需的关键步骤、可能遇到的...

    php连接sqlserver数据库驱动.rar

    "php连接sqlserver数据库驱动.rar"这个压缩包很可能是包含PHP连接SQL Server所需的驱动程序,如PDO_SQLSRV或sqlsrv。本文将详细解释如何使用PHP连接到SQL Server数据库,以及相关的关键知识点。 首先,你需要确保你...

    基于Linux下PHP连接SQL Server方法

    在Linux环境下使用PHP连接SQL Server数据库是一项常见但又具有一定技术难度的任务。本文将详细介绍如何在CentOS 6.5系统上通过安装和配置FreeTDS和PHP MSSQL扩展来实现这一目标。 #### 一、安装与配置FreeTDS **1....

    UNIX_Linux下使用FreeTDS访问Microsoft SQL Server数据库.pdf

    在UNIX和Linux操作系统环境下,访问Microsoft SQL Server数据库的需求日益增长,而FreeTDS库就是解决这一问题的关键。FreeTDS是一个开源项目,它允许Linux和类UNIX系统与Microsoft的SQL Server数据库进行通信,实现...

    Linux环境下访问Windows环境下的SQL Server数据库

    在Linux环境下访问Windows环境下的SQL Server数据库,通常需要借助特定的工具或库,因为Linux原生并不支持直接连接到Microsoft SQL Server。这里介绍的方法是基于PHP FEDTDS,这是一款共享软件,允许PHP在Linux上与...

    Linux下php连接SQLServer 2000数据库的配置方法

    实现目的:Linux服务器中的php程序能够连接到Windows服务器中的SQL Server 2000数据库 具体步骤: 一、在Linux服务器中安装freetds 1、安装编译工具及驱动程序 yum install make apr* autoconf automake gcc gcc-c

    linux操作系统配置ODBC数据源连接SQL Server

    本文档详细介绍了在Linux操作系统下配置ODBC数据源,从而实现与SQL Server的连接方法及步骤。 #### ODBC数据源简介 ODBC(Open Database Connectivity)是一种开放标准的应用程序接口(API),由微软开发,用于在...

    Linux 配置php链接sqlserver.docx

    完成以上步骤后,PHP应该已经成功配置为可以在Linux环境下连接到SQL Server。为了测试连接,可以编写一个简单的PHP脚本,尝试使用mssql_connect或PDO_DBLIB函数连接到SQL Server数据库。如果一切正常,脚本应该能...

    thinkphp5解决sqlserver链接问题

    工作需要用到php5.5连sqlserver 2008 R2,发现最新版的php内置已经不支持mssql 了,需要用到sqlsrv。 微软提供了Microsoft Drivers for PHP for SQL Server。

    php连接sql server插件

    标题提到的"php连接sql server插件"主要指的是PHP用于与SQL Server通信的一系列扩展,这些扩展使得PHP能够执行SQL查询、管理数据库、处理事务等操作。其中,"php_sqlsrv_53_nts_vc6.dll"是针对PHP 5.3版本的一个非...

    php连接sqlserver扩展文件.rar

    综上所述,"php连接sqlserver扩展文件.rar" 包含的资源对于使用PHP开发与SQL Server数据库交互的手游后台至关重要。通过理解并熟练运用PHP的SQL Server扩展,开发者可以构建稳定、安全且高效的后端系统。

    Linux编译mssql扩展使用php连接sqlserver2008的使用步骤

    FreeTDS是一个开源库,允许Linux系统连接到SQL Server数据库。首先,从官方网站或镜像站点下载最新版本的FreeTDS源码包。例如,可以使用`wget`命令从指定URL下载。解压缩后进入源码目录,执行`./configure`进行配置...

    thinkphp5 连接SqlService需要的扩展

    `thinkphp5 连接SqlService需要的扩展`这个主题主要涉及如何在ThinkPHP5框架中配置和使用SQLServer数据库服务,这里我们详细探讨一下相关的知识点。 首先,`SqlService`通常指的是SQL Server服务,它是一个流行的...

    php7的sqlserver扩展sqlsrv扩展安装,7.0-7.1-7.2所有扩展

    在PHP开发中,有时我们需要连接到SQL Server数据库,这时就需要使用到特定的扩展。本文将详细阐述如何在PHP 7.0、7.1和7.2版本中安装sqlsrv和pdo_sqlsrv扩展,以便与SQL Server进行交互。 首先,sqlsrv是微软提供的...

    php7-sqlserver扩展.zip

    PHP7-SQLServer扩展是PHP与SQL Server之间的桥梁,它提供了多种数据库操作接口,包括连接、查询、事务处理等功能,使得开发者可以方便地在PHP应用中执行SQL语句,管理SQL Server数据库。这个扩展支持TDS协议,这是...

Global site tag (gtag.js) - Google Analytics