源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

  • 时间:2021-04-17 22:42 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP 5.6.11 访问SQL Server2008R2的几种情况详解
PHP天生支持MySQL,但是有时候也想让它访问SQL Server,该怎么办呢? 最近找了点资料,测试成功了PHP访问SQLSvr的几种情况,限于时间,还没有测试更多不同环境,把测试过的记录如下: 测试环境:win7 x64 sp1,IIS 7.5, Apache 2.4 32位版本,PHP 5.2.6 win32, PHP 5.6.11 win32 ts(线程安全版) 注:由于“Microsoft Drivers for PHP for SQL Server”驱动程序目前只有32位版,所以如果是使用sql server数据库的朋友,不建议使用php 64位,否则会导致无法连接 sql server 数据库的问题! php 5.2.6在iis上成功访问了sql2000 php 5.2.6在iis上成功访问了sql2008r2 php 5.6.11在apache上成功访问了sql2008r2 【5.2.6 -> SQL2000】 为什么要用5.2.6这么旧的php版本做测试呢,因为php 5.2版本,内置了php_mssql.dll 模块, 打开了php.ini中的extension=php_mssql.dll 配置选项,默认好像就支持mssql2000了, 打开phpinfo能看到相关的支持模块内容: [img]http://files.jb51.net/file_images/article/201608/2016080813582118.png[/img] PS.IIS 7.0下安装PHP现在方便了,可以通过一个第三方小工具 PHP Manager来安装,也可以方便的切换iis下的php版本,这不是本文的主要内容,这里就不介绍了; php manager for iis 7 下载安装地址: [url=http://phpmanager.codeplex.com]http://phpmanager.codeplex.com[/url]/ [img]http://files.jb51.net/file_images/article/201608/2016080813582119.png[/img] [img]http://files.jb51.net/file_images/article/201608/2016080813582120.png[/img] 写一个测试的小例程:
<?php
$server ="127.0.0.1\sql2000"; //服务器IP地址,如果是本地,可以写成localhost
$uid ="sa"; //用户名
$pwd ="yoooko"; //密码
$database ="master"; //数据库名称
//进行数据库连接
$conn =mssql_connect($server,$uid,$pwd) or die ("connect failed");
mssql_select_db($database,$conn);
//执行查询语句
$query ="select * from cs";
$row =mssql_query($query);
//打印输出查询结果
while($list=mssql_fetch_array($row))
{
print_r($list);
echo "<br>";
}
?>
在IIS 7.5下运行结果如下:成功! [img]http://files.jb51.net/file_images/article/201608/2016080813582121.png[/img] 【5.6.11 -> SQL2008R2】 5.6以上的PHP已经没有php_mssql.dll,貌似也不再原生支持sql2000以上版本的sql server了,要通过第三方模块,在微软官网找到了: Microsoft Drivers for PHP for SQL Server [url=http://www.microsoft.com/en-us/download/details.aspx?id=20098]http://www.microsoft.com/en-us/download/details.aspx?id=20098[/url] 下载链接地址有四个文件: •SQLSRV30.EXE •SQLSRV31.EXE •SQLSRV32.EXE •SQLSRV40.EXE 分别支持不同的PHp版本 •Version 4.0 supports PHP 7.0+ •Version 3.2 supports PHP 5.6, 5.5, and 5.4 •Version 3.1 supports PHP 5.5 and 5.4 •Version 3.0 supports PHP 5.4. 如果是PHP 5.2要下载一个SQLSRV20.EXE,这个文件目前在网上也能很容易的找到; (虽然5.2这么旧的版本早就该被淘汰了,但是考虑到某些环境还需要用它) php_pdo_sqlsrv_52_ts_vc6.dll php_sqlsrv_52_ts_vc6.dll [img]http://files.jb51.net/file_images/article/201608/2016080813582122.png[/img] 1. 我手里是PHP 5.6.11 win32 ts,要用到这个 php_sqlsrv_56_ts.dll php_pdo_sqlsrv_56_ts.dll 这两个文件,复制到php\ext目录下, 2. php.ini 里加上以下两句: extension=C:\PHP5\ext\php_sqlsrv_56_ts.dll extension=C:\PHP5\ext\php_pdo_sqlsrv_56_ts.dll 3. 重启IIS或者Apache, 4. 通过phpinfo能够看到如下模块显示,我们的PHP应该此时就能访问SQL Server 2008R2了; [img]http://files.jb51.net/file_images/article/201608/2016080813582123.png[/img] [img]http://files.jb51.net/file_images/article/201608/2016080813582124.png[/img] 5、写一个小程序验证一下:
<?php
try { 
$dbName = "sqlsrv:Server=127.0.0.1\sql2008r2;Database=master"; 
$dbUser = "sa"; 
$dbPassword = "yoooko"; 
$db = new PDO($dbName, $dbUser, $dbPassword); 
if ($db) 
{ 
echo "database connect succeed.<br />"; 
}
}
catch (PDOException $e)
{ 
$content = iconv("UTF-8","gbk",$e->getMessage()); 
echo $content . "<br />";
}
//echo "Hello PDO to MS SqlSrv!";
?>
如果出现如下提示: [img]http://files.jb51.net/file_images/article/201608/2016080813582125.png[/img] 可能你还需要安装 Microsoft® ODBC Driver 11 for SQL Server® - Windows 下载地址:[url=https://www.microsoft.com/zh-cn/download/details.aspx?id=36434]https://www.microsoft.com/zh-cn/download/details.aspx?id=36434[/url] [img]http://files.jb51.net/file_images/article/201608/2016080813582126.png[/img] 如果正确的话,应该就OK了: PS.由于新的模块是通过PDO方式访问SQL Server 2008R2,如果是本机访问,那么直接通过ip地址和sa账号就能访问了, 如果php和sql2008r2在不同电脑上,还得设置TCP 端口1433来访问,见下面第二张图,把动态端口改为0,把端口设置为14333如果你的SQL2000已经占用了1433,访问地址后面加个,xxxx端口号 sqlsrv:Server=192.168.1.xxx\sql2008r2,14333;Database=master [img]http://files.jb51.net/file_images/article/201608/2016080813582127.png[/img] [img]http://files.jb51.net/file_images/article/201608/2016080813582128.png[/img] 以上所述是小编给大家介绍的PHP 5.6.11 访问SQL Server2008R2的几种情况详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部