Windows下连接php5.3+sql server2008
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的更多相关文章
- java 连接mysql 和sql server2008代码
这两天用java分别连接mysql和sql server2008代码.刚開始都是有错.如今找到了在 自己机器上成功连接的代码: 1. mysql Class.forName("com.mys ...
- 分享一次在Windows Server2012 R2中安装SQL Server2008
入手一台Windows Server2012云服务器,搭建一下服务环境,选用SQL Server2008 直奔主题,下好安装镜像后,直接双击 选择运行程序而不获取帮助 如图: 进入安装中心后选择 安装 ...
- Windows下连接调试Asus Nexus 7 Tablet
Linux和mac下都能够直接连接,可是windows下必须下驱动.官网上的driver无论用.管用的是 https://drive.google.com/uc?id=0Bw8B2a85Qa1jSld ...
- windows下安装php5.2.*,php5.3.*,php5.4.*版本的memcache扩展
注:如使用集成环境成功率低,请自行配置php apache,表示win7下wamp php5.4.3基础上配置拓展,成功率极低.费时. 拓展安装调试方法: 编写调试php文件 <?php me ...
- python在windows下连接mysql数据库
一,安装MySQL-python python 连接mysql数据库需要 Python interface to Mysql包,包名为 MySQL-python ,PyPI上现在到了1.2.5版本.M ...
- 在Windows下为PHP5.6安装redis扩展
Redis 安装 Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你系统 ...
- windows下安装php5.5的redis扩展
windows下开发用的xampp集成的环境,想装个php-redis扩展,扩展的github地址: https://github.com/nicolasff/phpredis php_redis. ...
- windows下安装php5.2.*,php5.3.*,php5.4.*版本的memcache扩展(转)
拓展安装调试方法: 编写调试php文件 <?php memcache(); 通过命令行执行测试,因为php拓展安装成功与否与apache无关,所以没必要不断重启apache去看phpinfo ...
- [转载]在Windows下为PHP5.6安装redis扩展和memcached扩展
一.php安装redis扩展 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...
随机推荐
- Hello Bolg!
初来乍到,将就闹点小情绪吧 博客, 作为一个即将毕业的小码农, 第一次写这东西似乎生涩了点. 而且第一眼看到这东西还觉得特玄乎,不过“化抽象为具体, 化复杂为简单”不正是自己的职业操守吗. 于是, 我 ...
- 【案例】舒邑:一个女装品牌的奇葩打法-@i黑马
[案例]舒邑:一个女装品牌的奇葩打法-@i黑马 [案例]舒邑:一个女装品牌的奇葩打法
- Activity小结
Log日志类的五种级别 1.由高到低分别是:v.i.d.w.e 2.生命周期有七种状态: onCreate:创建 onStart:启动 onResume:显示(可以与用户交互) onPause:暂停 ...
- 第34讲 UI组件之 ProgressDialog和Message
第34讲UI组件之 ProgressDialog和Message 1.进度对话框 ProgressDialog <1>简介 ProgressDialog是AlertDialog类的一个扩展 ...
- poj 2785 4 Values whose Sum is 0(折半枚举(双向搜索))
Description The SUM problem can be formulated . In the following, we assume that all lists have the ...
- QListWidget方式显示缩略图
最近在工作中经常遇到了一个问题就是把把文件夹中的图片全部以缩略图的形式显示出来,刚开始的时候一头雾水,不知道怎么办,经过在网上查资料,发现QListWidget控件可以实现图片的缩略图显示,但是不知道 ...
- Python安装MySQLdb并连接MySQL数据库
当然了,前提是你已经安装了Python和MySQL.我的Python是2.6版本的. Python2.6的“Set”有点兼容性问题,自己照着改一下: http://sourceforge.net/fo ...
- 为人们服务的asp.net 验证控件
ASP.NET是微软推出的WEB开发工具,他有很强大的功能,今天看视频讲到验证控件这一部分,真的感受到了微软全心全意为人民服务了.越来越佩服微软了,人家都设计出来了,咱们一定要会用才可以啊,不然太…. ...
- linux下使用mutt发送带附件的邮件
echo "hello"|mutt -s "world" -a hack.jpg -- name@address.com
- [Redux] Extracting Container Components -- VisibleTodoList
Code to be refacted: const TodoList = ({ todos, onTodoClick }) => ( <ul> {todos.map(todo =& ...