php连接sql server真是一件闹心的事,

折腾了许久,今天有了点起色,还是不错的。

mssql extension is not available anymore on Windows with PHP 5.3 or later.

也就是说extension=php_mssql.dll是没有效果的,不管用了。php不支持用php_mssql.dll连接sql server了,

这个时候怎么办呢?

微软官方有dll支持,

各种上网查询,听说用SQLSRV20.EXE管用,

1.下载SQLSRV20.EXE

第一个SQLSRV20.EXE是用于sql server 2005或者sql server2008的。

第二个SQLSRV30.EXE是用于sql server 20010或者sql server 2012的。

2.解压SQLSRV20.EXE后,又是一个面临选择的问题,

如下图,

这里面有很多,到底选择哪个呢?

SQLSRV20.exe,即MicrosoftDriver 2.0 for PHP for SQL Server(sql server 2005 及2008使用SQLSRV20.exe, SQL Server 2010使用SQLSRV30.exe)(需要其中的php_pdo_sqlsrv_52_ts_vc6.dll和php_sqlsrv_52_ts_vc6.dll);其中,52表示 php5.2,53表示php5.3,ts表示线程安全,nts表示非线程安全,vc6表示用vc6(vs2005)编译的,vc9表示用vs2008编译的,vc6适用于apache,vc9适用于IIS。

经过筛选之后,

3.选择了php_sqlsrv_53_ts_vc6.dll

和php_pdo_sqlsrv_53_ts_vc6.dll

将其

4.放入php文件夹下的ext中

5.并且配置php.ini

添加

extension=php_pdo_sqlsrv_53_ts_vc6.dll
extension=php_sqlsrv_53_ts_vc6.dll

6.重启apache

发现报错了,

非常郁闷,说好的vc6的呢?!!!

这个时候,我尝试了vc9,替换了vc6

然后重启apache可以了。说好的vc9用于IIS的呢?

也许是适合用于IIS,但是同样可以用于apache吧!

这个时候通过

7.查看phpinfo发现已经有了sqlsrv的支持

然后进行代码连接测试,

8.首先要确保sql server2008正常,

我设置了sa用户的密码为123456,

sql server2008是正常的,

好,

9.测试!

<?php
$serverName = "纪庆";
$connectionOptions = array("UID"=>"sa","PWD"=>"123456","Database"=>"master");
$conn = sqlsrv_connect( $serverName, $connectionOptions);
if( $conn === false ){
die('不能打开连接');
}
$tsql = "SELECT TOP 3 * FROM spt_values";//注意,这里是mssql,不能用limit
$result = sqlsrv_query($conn, $tsql, $params);
if ( $result === false){
print_r(sqlsrv_errors());exit;
}
if(sqlsrv_has_rows($result))
{
$rowCount = sqlsrv_num_rows($result);
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC))
{
echo iconv("gb2312", "utf-8", $row['name'])."<br>";//连接的mssql数据库肯定是中文的,需要转码
}
}
else
{
echo '没有数据';
}

服务器名称:纪庆

用户名:sa

密码:123456

数据库:master

表:spt_values

查询结果如下:

rpc
pub
sub

至此,算是成功了吧!

继续测试其他主机也是可以的,

$serverName="192.168.70.119";

这里的服务器名称改为了另一台机器的ip,

对应的用户名sa

密码123456

数据库master

表spt_values都是一样的

只是数据我修改了,将第一条修改为jiqing

测试结果:

jiqing
pub
sub

发现也是成功的!

10.测试pdo_sqlsrv

<?php
try {
$conn = new PDO( "sqlsrv:Server=192.168.70.119;Database=master",'sa', '');
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch( PDOException $e ) {
die( "Error connecting to SQL Server".$e->getMessage() );
} echo "Connected to SQL Server<br/>"; $query = 'select top 3 * from spt_values';
$stmt = $conn->query( $query );
while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){
print_r( $row );
}
?>

结果:

Connected to SQL Server
Array ( [name] => jiqing [number] => [type] => A [low] => [high] => [status] => ) Array ( [name] => pub [number] => [type] => A [low] => [high] => [status] => ) Array ( [name] => sub [number] => [type] => A [low] => [high] => [status] => )

也是可以的。

Windows下连接php5.3+sql server2008的更多相关文章

  1. java 连接mysql 和sql server2008代码

    这两天用java分别连接mysql和sql server2008代码.刚開始都是有错.如今找到了在 自己机器上成功连接的代码: 1. mysql Class.forName("com.mys ...

  2. 分享一次在Windows Server2012 R2中安装SQL Server2008

    入手一台Windows Server2012云服务器,搭建一下服务环境,选用SQL Server2008 直奔主题,下好安装镜像后,直接双击 选择运行程序而不获取帮助 如图: 进入安装中心后选择 安装 ...

  3. Windows下连接调试Asus Nexus 7 Tablet

    Linux和mac下都能够直接连接,可是windows下必须下驱动.官网上的driver无论用.管用的是 https://drive.google.com/uc?id=0Bw8B2a85Qa1jSld ...

  4. windows下安装php5.2.*,php5.3.*,php5.4.*版本的memcache扩展

    注:如使用集成环境成功率低,请自行配置php apache,表示win7下wamp php5.4.3基础上配置拓展,成功率极低.费时. 拓展安装调试方法: 编写调试php文件 <?php  me ...

  5. python在windows下连接mysql数据库

    一,安装MySQL-python python 连接mysql数据库需要 Python interface to Mysql包,包名为 MySQL-python ,PyPI上现在到了1.2.5版本.M ...

  6. 在Windows下为PHP5.6安装redis扩展

    Redis 安装 Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你系统 ...

  7. windows下安装php5.5的redis扩展

    windows下开发用的xampp集成的环境,想装个php-redis扩展,扩展的github地址:  https://github.com/nicolasff/phpredis php_redis. ...

  8. windows下安装php5.2.*,php5.3.*,php5.4.*版本的memcache扩展(转)

    拓展安装调试方法: 编写调试php文件 <?php  memcache();  通过命令行执行测试,因为php拓展安装成功与否与apache无关,所以没必要不断重启apache去看phpinfo ...

  9. [转载]在Windows下为PHP5.6安装redis扩展和memcached扩展

    一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本       2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...

随机推荐

  1. eclipse,tomcat部署web项目,以及本地文件访问

    1.直接把项目复制到Tomcat安装目录的webapps目录中,这是最简单的一种Tomcat项目部署的方法,也是初学者最常用的方法. 2.在tomcat安装目录中有一个conf文件夹,打开此文件夹,其 ...

  2. shiro内置过滤器研究

    anon org.apache.shiro.web.filter.authc.AnonymousFilter authc org.apache.shiro.web.filter.authc.FormA ...

  3. alert 在手机浏览器会显示网址,怎么能去掉这个网址

    之前就看到有人发过这帖子,现在自己也遇到这问题了. 目前想到的一个解决方案,是用jquery的模拟的alert插件进行代替,可是找的几个插件都不能实现alert的阻塞功能.怎么破 ,具体解决方案如下: ...

  4. Citrix 服务器虚拟化之九 Xenserver虚拟机的XenMotion

    Citrix 服务器虚拟化之九 Xenserver虚拟机的XenMotion XenMotion 是 XenServer 的一项功能,能够将正在运行的虚拟机从一台 XenServer 主机上迁移到另外 ...

  5. thinking in java知识小记(一)

    知识点一(javadoc): 使用javadoc时特别注意选择encoding和charset为utf-8,要不然生成的javadoc会是乱码,命令:javadoc -encoding utf-8 - ...

  6. bit、byte、位、字节、字符串等概念

    原始文章:http://djt.qq.com/article/view/658 1.古代送信:马车,烽火,信鸽 2.1837年,世界第一条电报诞生, 美国科学家莫尔斯尝试用一些“点”和“划”来表示不同 ...

  7. 从blob字段读取图片 在浏览器显示

    public byte[] GetProImg(string JID) { byte[] Buffer = null; using (OracleConnection conn = new Oracl ...

  8. 创建和管理表【weber出品必属精品】

    创建表 必须有 : 1. CREATE TABLE 的权限 SQL> conn /as sysdba 已连接. SQL> create user test default tablespa ...

  9. 你真的了解:IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的最大工作进程数 吗?

    原文链接:http://www.cnblogs.com/yinhaichao/p/4060209.html?utm_source=tuicool&utm_medium=referral 一般购 ...

  10. C#代码设置窗体和Panel的位置大小

    1.设置Panel位置大小 private void button2_Click(object sender, EventArgs e) { panel1.Visible = false; panel ...