手机版

完整的php攻略连接微软MSSQL(sql服务器)

时间:2021-09-11 来源:互联网 编辑:宝哥软件园 浏览:

在学习ezSQL的时候,看到了php提供的一些连接MSSQL的函数,比如mssql_connect(),等等。我原以为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配置管理器-网络配置-协议-启用了TCP/IP

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

4.安装php并配置IIS服务。

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

Mssql。textlimit=20971520mssql。完成此操作后,您可以通过以下三种方式连接到数据库:

使用php自己的方法连接到MSSQL(5.3和更高版本不适用)

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

;扩展名=php_mssql.dll

前面的“;”摆脱。

然后,您可以测试连接:

//connect MSSQL $ conn=MSSQL _ connect('实例名或服务器IP ','用户名','密码');//如果($conn){ echo' connection成功,则测试连接;}微软针对PHP的SQL Server驱动程序

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扩展名_dir目录。如果SQLSRV30.EXE不是有效的win32程序,可能是缺少某些库,也可能是vc10,或者它没有以管理员权限运行。

extension_dir="C:\PHP\ext "

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

扩展名=PHP _ sqlsrv _ 52 _ ts _ VC6 . dllextrance=PHP _ PDO _ sqlsrv _ 52 _ ts _ VC6 . dllextrance=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是非线程安全的。

4)重新启动Apache5)连接到数据库

测试连接代码:

?php//local test' (local)'的服务名;//使用sql server身份验证,参数采用数组形式,一个是用户名、密码、数据库名。//如果使用windows身份验证,可以删除用户名和密码$ connectioninfo=array(' uid '=' root ',' pwd'=' root2010 ',' database '=' master ');$ conn=sqlsrv _ connect($ serverName,$ connectionInfo);if($conn ){ echo '连接已建立。\ n ';}否则无法建立{ echo '连接。\ n ';die(print_r(sqlsrv_errors(),true));} ?在windows下使用FreeTDS

什么是FreeTDS?FreeTDS实际上是一个开源(或免费)的C程序库,可以在Linux系统下访问和操作微软SQL数据库。它可以在Sybase db-lib或ct-lib库中使用,后者也包含一个ODBC库。许多应用程序被允许连接到Sybase或微软的SQL服务器。FreeTDS是基于源代码的现实发布的。正因为如此,它几乎可以在任何系统中编译和安装。

如果你的服务器是Windows,你应该使用php_dblib.dll(更多关于对Unix使用FreeTDS的信息。)

通常我们可以在这个网站上找到这些DLL文件——Frank Kromann的网站,但是基本上很多都已经过时了,会造成很多问题,所以推荐windows下的PHP 5.2.x版本,看看下面的建议:

1.根据下表,下载php_dblib.dll并保存在/PHP/ext文件夹中。

PHP版本线程安全FreeTDS版本下载URL PHP 5.2.x (vc6)是0.82 20090302补丁下载!无0.82 20090302补丁下载!PHP 5.3.x (vc9)是0.82 20090904补丁下载!无0.82 20090904补丁下载!PHP 5.4.x (vc9)是0.82 20110906补丁下载!FTP下载!无0.82 20110906补丁下载!FTP下载!2.FreeTDS需要安装。NET Framework v1.1版你可以从微软网站下载。或者去Frank的网站下载需要的DLL文件,保存在你的/PHP根目录下。

3.在php配置文件/PHP/php.ini中添加:

扩展名=php_dblib.dll

4.当php引擎启动FreeTDS模块时,它需要传递一些信息,以便FreeTDS可以连接到它的默认数据库。所以需要在freetds.conf中定义数据库连接的基本信息,这个信息在它的根目录下,可以根据你的情况修改:

[全局]主机=XXX . XXX . XXX . XXX(MSSQL server的主机名或IP)端口=1433客户端字符集=utf-8td version=8.0 text size=209715205,创建一个config.php文档来定义数据库连接参数:

$ CFG-dbtype=' MSSQL ';//必选$ CFG-dbhost=' localhost ';//假设MS SQL在同一台服务器上,否则使用IP $ CFG-dbname=' Moodle ';//或者无论您如何称呼您创建的数据库$ CFG-dbuser=' yoursusername ';//我通常使用‘sa’帐户(dbowner perms就够了)$ CFG-dbpass=‘your password’;$ CFG-db persist=false;$ CFG-前缀=' mdl _//前缀,可以改,但千万不要留空6 .重启网站。如果它仍然没有连接到您的数据库,请在/PHP/php.ini文件中将display_startup_errors更改为“on”,并在解决这些问题后将错误报告更改为“off”。7.测试你的网站,创建一个test.php文件。代码如下。访问http://localhost/test.php进行测试

?PHP $ link=MSSQL _ connect(' localhost ',' db_user ',' db _ password ');if(!$link) {echo“无法连接”;芯片('无法连接: '。MSSQL _ error());}回显“成功连接”;MSSQL _ close($ link);好了,我就不多说windows下FreeTDS上的数据了。至此,这段日志结束。

版权声明:完整的php攻略连接微软MSSQL(sql服务器)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。