php连接mssql php连接mssql2005数据库代码

在研究ezSQL的时候就看到了mssql_connect()等一些php提供的连接MSSQL的函数,本以为php这个开源的风靡世界的编程语言对连接微软的数据应该是不在话下的,但是到真正执行的时候,才发现困难多多。

一开始我下载的php版本是5.93的,下载下来添加环境变量等等搞了半天后,phpinfo()这个函数终于成功的运行在浏览器中了。然后当我在满世界的找php_mssql.dll,才发现在5.3以及以上版本的php中已经不是原生态的支持mssql了。

好不容易找到了微软Microsoft Drivers 3.0 for PHP for SQL Server,心想微软的东西应该做的可以,却无奈的发现SQLSRV30.EXE没有办法运行:“SQLSRV30.EXE 不是有效的win32程序”。

在网上搜索了半天,总结了以下一些可行的办法,但是在这之前你需要:

配置MICROSOFT SQL SERVER

1、下载并安装sql server。现在这个版本就比较多了从2000 到2008不等,找一个你自己下载吧。

2、开放tcp/ip连接方式,使得数据库能够远程访问。SQL Server Configuration Manager -> Network Configuration -> Protocols -> TCP/IP enabled

3、打开数据管理界面,添加用户和数据库。

4、安装php和配置IIS服务。

5、打开php所在文件夹里面的 php.ini文件,并添加:

?
1
2
mssql.textlimit = 20971520
mssql.textsize = 20971520

做完了这些之后,你可以按照下面三种方法来连接数据库了:

使用php自带的方法连接MSSQL(5.3及以后版本不适用)

确保php ext扩展库文件夹下有php_mssql.dll,然后在PHP.ini中的配置中,将

;extension=php_mssql.dll

前面的“;”去掉。

然后你可以测试连接了:

首先是mssql_connect方式,这种方式比较方便,但是可能会遇到服务器没有安装mssql模块的情况。

$ms_host = "192.168.0.xx"; //主机

$ms_user = "sa"; //用户名

$ms_pass = "aa"; //密码

$ms_data = "test" //MSSQL库名

$ms_connect = mssql_connect($ms_host, $ms_user, $ms_pass)

or die("Couldn't connect to SQL Server on $$ms_host");

 

$ms_select = mssql_select_db($ms_data, $ms_connect)

or die("Couldn't open database $ms_select");

 

$update    = "SELECT reportid

        FROM ReportInfo

            WHERE  (report_goods_id = '$id') ;";

$result = mssql_query($update);

return $result;
报错可能是:
(1) Call to undefined function mssql_connect() :这是因为没有开启mssql模块。
①在php.ini中找到:
extension=php_mssql.dll,和extension=php_pdo_mssql.dll,确定他们的前面没有“;”。
②在php.ini中找到:
extension_dir = "C:\php\ext\"。这里是extension目录,确认这个目录下有php_mssql.dll、php_pdo_mssql.dll。
③php.ini的位置,extension_dir的位置可以使用phpinfo()查看。

(2)mssql_connect() : Unable to connect to server: 192.168.0.xx:连接失败,最可能是的是没有开启mssql的远程连接。这里有具体的开启方法。

http://tech.ccidnet.com/art/1106/20090225/1689795_1.html

当然,我的情况是这样设置了以后还是不能连接,后来我注意到我的服务器上有一个运行的图标,而那台虽然开启了远程连接,而且用SQL Server Management Studio也可以正常连接的服务器则没有这个图标,也许是这个原因。具体是什么情况改天问一下mssql的专家们。
php连接mssql(mssql_connect <wbr>和odbc方式)
因为另一台服务器是iis的,没有安装php的mssql模块,所以我采用odbc的连接方式,代码如下:

$ms_host = "test"; //这里是ODBC的连接名称

$ms_user = "test"; //用户名

$ms_pass = "test123"; //密码

 

$ms_connect =odbc_connect($ms_host, $ms_user, $ms_pass) or die("Couldn't connect to SQL Server on MSSQL");
在那台服务器上建立一个odbc连接,具体操作是:
①打开控制面板-管理工具-数据源 (ODBC)-“系统DSN”的选项卡,点击“添加”,在“创建新数据源”中选择“SQL Native Client”。
②填入数据库基本资料,因为是本地数据库,所以填写(local)
php连接mssql(mssql_connect <wbr>和odbc方式)

几天一直都为php连接mssql的事而烦恼,因为试做很多种不同的方法都不行,原因一直都未明确。不过,今日

我的php终于可以连接到mssql了。所以我接下来,写写这几天我所得的经验。

1.首先,版本的问题。

       我本人现在使用的是wamp1.7php版本5.0.* ,不过,不是所有的wamp版本都支持

       mssql的,我之前使用的是wamp2.1版,php的版本是

       5.3.*的,由于php的发展方向是与mysql搭配的,所以到php5.3.*时已经唾弃了mssql

       的连接功能。所以,我的建议就是重新下载一个php_mssql.dllext文件下

       或者直接使用比较低版本的wamp,对于自己搭建的环境,下一个版本低于5.3.*的php。

       可能还有个疑问,就是wamp2.1php扩展那里是不是还有php_mssql选择的吗?但你到ext

       目录下一看就知道,php_mssql.dll是不存在的,这个是形同虚设的。

       所以很多时候显示的错误:

       Fatal error:Call to undefined function mssql_connect() in D://......

       都是没有php_mssql.dll或者是没配置php_mssql的原因。

2.开始配置php_mssql

       a、打开php.ini,将;extension=php_mssql.dll前面的;去掉

       b、还是php.ini,将mssql.secure_connectiondoff改为on

       这样就是php这方面的简单配置完成了,然后在打开phpinfo测试

      www目录下新建一个test.php文件,代码如下:

       <?php

              echo phpinfo();

       ?>

       再打开localhost/test.php.

       如果开启了mssql模板,那就算是php这方面的配置成功啦。

3.连接mssql

       还是刚才的test.php

       <?php

              //echo phpinfo();

              $conn = mssql_connect("localhost","sa","root");

       ?>

       这时打开lcoalhost/test.php,页面会报错,如下:

       Warning: mssql_connect()[function:mssql_connect]:Uable to connect to server:localhost

       in D:\............

       这个时候我们的phpApache已经可以连接到sql server了,下面是对sql server的配置

 

       右键单机“我的电脑”->“管理”->"服务和应用程序"->"SQL Server 2005网咯配置"

       ->"MSSQLSERVER的协议"->"TCP/IP"->右键“启动”,然后重启所有服务器。

这步是很多初学者刚用SQL server时忽略的一步,这步都是许多网上关于php连接mssql的文章中都是没有的.

       接下来,刷新页面,如果没 WarmingWarning: mssql_connect()[function:mssql_connect]:Uable to connect to server:localhost

       那就成功了。

       很多新手包括我之前都有这样的疑问:如果我的SQL serverwindow身份验证的,那我的服务器、账号和密码写什么?

       1.先讲服务器名称:这个是可以多种的。比如:我的就是PC--20101211CQF,这是装电脑时就命名的,从来没改过。

       a.就是你服务器的名称,如果不知道的可以运行SQL server management studio

       在连接的对话框中你会看到服务器名称的。

       b.ip地址。如果是本机的话就127.0.0.1或者localhost,不是本机就写装了SQL server机子的ip

       当然ipv6的地址都可以。

       2.账号和密码:

       a.如果是window身份验证的,就直接为空 比如:$conn = mssql_connect("lcoalhost","","")

       b.如果是有账号的就,$conn = mssql_connect("localhost","账号","密码")sa是管理员账号,相当于mysqlroot

       开始时SQL server时不能sa登录的,需要设置登录密码才能生效,登录,至于这个就留个读者百度了。

       如果有什么疑问可以留言

注:用PHP操作MSSQL比在ASP连接MYSQL要简单,所以,当需要MSSQL与MYSQL并存时,用PHP连接MSSQL来操作MYSQL与MSSQL并存比较简单好用.如果是ASP连接MYSQL,需要安装一个MYSQL驱动,默认windows的ODBC没有安装,很遗憾...
1.在web服务器上至少安装了mssql的客户端
2.打开php.ini把;extension=php_mssql.dll前面的分号去掉
有必要话:需要制定extension_dir
3.推荐使用php<=4.0.9<=5.0.3目前我还没有连接成功过4.010和5.0.3
4.数据库的连接分页可以到phpe.net上获取到相应的class
下面是我根据那里修改的一个class

在研究ezSQL的时候就看到了mssql_connect()等一些php提供的连接MSSQL的函数,本以为php这个开源的风靡世界的编程语言对连接微软的数据应该是不在话下的,但是到真正执行的时候,才发现困难多多。

一开始我下载的php版本是5.93的,下载下来添加环境变量等等搞了半天后,phpinfo()这个函数终于成功的运行在浏览器中了。然后当我在满世界的找php_mssql.dll,才发现在5.3以及以上版本的php中已经不是原生态的支持mssql了。

好不容易找到了微软Microsoft Drivers 3.0 for PHP for SQL Server,心想微软的东西应该做的可以,却无奈的发现SQLSRV30.EXE没有办法运行:“SQLSRV30.EXE 不是有效的win32程序”。

在网上搜索了半天,总结了以下一些可行的办法,但是在这之前你需要:

配置MICROSOFT SQL SERVER

1、下载并安装sql server。现在这个版本就比较多了从2000 到2008不等,找一个你自己下载吧。

2、开放tcp/ip连接方式,使得数据库能够远程访问。SQL Server Configuration Manager -> Network Configuration -> Protocols -> TCP/IP enabled

3、打开数据管理界面,添加用户和数据库。

4、安装php和配置IIS服务。

5、打开php所在文件夹里面的 php.ini文件,并添加:
mssql.textlimit = 20971520
mssql.textsize = 20971520

做完了这些之后,你可以按照下面三种方法来连接数据库了:

使用php自带的方法连接MSSQL(5.3及以后版本不适用)

确保php ext扩展库文件夹下有php_mssql.dll,然后在PHP.ini中的配置中,将

;extension=php_mssql.dll

前面的“;”去掉。

然后你可以测试连接了:

1 //连接MSSQL
2 $conn=mssql_connect("实例名或者服务器IP","用户名","密码");
3
4 //测试连接
5 if($conn)
6 {
7     echo "连接成功";
8 }

Microsoft Drivers for SQL Server for PHP

2008年7月微软发布了一个新的为php连接SQL Server的驱动,它改善了php自带的连接MSSQL函数的一些缺点,并且是以php扩展插件的形式开发的,通过它你可以用php轻松的读写微软的数据库了。

如果你服务器使用的是IIS的话,那么就一定要从这里去下载:

http://php.iis.net/

因为从上述链接进去其实是微软整合的网络开发平台,只提供在线安装,但是很方便的整合了PDO插件和php,当然还有微软的其它一些开发功能,但是如果你没需要,你可以不装了,那些是在visual studio中的。

但是如果你用的是 Apache的话,你可以去这里直接下载这个插件了,它其实是一个解压文件,解压出来几个DLL文件,具体操作如下:

1)下载驱动包:http://www.microsoft.com/en-us/download/details.aspx?id=20098.

2)将DLL文件解压到 PHP extension_dir 目录,如果出现说SQLSRV30.EXE 不是有效的win32程序,可能是缺少某些库,可能是vc10,也有可能是没有用administrator权限运行。

extension_dir = “C:/PHP/ext”

sqlsrv3

3)在php.ini配置文件内引用相应的动态链接库文件

extension=php_sqlsrv_52_ts_vc6.dll

extension=php_pdo_sqlsrv_52_ts_vc6.dll

extension=php_pdo.dll

其中的52、53表示就是php的5.2.x和5.3.x 版本,选择跟你php版本相匹配的;

选择vc6或vc9的主要看你使用的是什么web服务器软件,如果使用的是IIS那就选择vc9的,如果是Apache则选择vc6的。

至于ts和nts,就要看你安装的php版本是线程安全版的还是非线程安全版,ts是线程安全,nts是非线程安全。

更多
  • 该日志由 于2017年12月13日发表在 未分类 分类下, 你可以发表评论,并在保留原文地址 及作者的情况下引用到你的网站或博客。
  • 本文链接: php连接mssql php连接mssql2005数据库代码 | 帮助信息-动天数据
  • 文章标签:
  • 版权所有: 帮助信息-动天数据-转载请标明出处
  • 【上一篇】 【下一篇】

    0 Comments.