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 ...
随机推荐
- Linux企业级项目实践之网络爬虫(4)——主程序流程
当我们设计好程序框架之后就要开始实现它了.第一步当然是要实现主程序的流程框架.之后我们逐渐填充每个流程的细节和其需要调用的模块. 主程序的流程如下: 1. 解析命令行参数,并根据参数跳转到相应的处理 ...
- j2ee开源项目——IT学习者博客(itxxzblog v1.0)
大家好,我是IT学习者-螃蟹,已经有近一周的时间没有更新文章了,作为回报,今天起将更新一个大件,也就是螃蟹还在进行中的IT学习者博客. IT学习者博客的初期设计已经完成,功能也已经完成了大半,具备了当 ...
- FreeBSD简单配置SSH并用root远程登陆方法
FreeBSD简单配置SSH并用root远程登陆方法 前言:最近下载了FreeBSD,在虚拟机上安装,第一步先要开启SSH服务,用终端putty软件可以实现在windows系统进行远程管理, 初级 = ...
- oracle10.2 dblink impd 同库不同用户复制数据
同库不同用户复制数据 1.授权用户导入表权限; SQL> grant exp_full_database to system; SQL> commit; 2.创建dblink; SQL&g ...
- c语言结构体2之变量赋值于字符串
#include <stdio.h> #include <stdlib.h> struct dangdang { ]; ]; ]; int num; int bugnum; ] ...
- 加密解密(2)*客户端,服务器,CA(Certificate Authority),公钥,私钥,证书,签名,验证
加密解密(2)*客户端,服务器,CA(Certificate Authority),公钥,私钥,证书,签名,验证 各角色比喻 客户端:通常为请求方,要验证服务器的身份. 服务器:通常为响应方,有时也要 ...
- Ruby中,类方法和实例方法的一个有趣的例子
最初的代码如下: class Object def abc p "instance abc" end def self.abc p "class abc" en ...
- CentOS磁盘分区、格式化并挂载外置存储的方法
1.划分外置存储主分区: 假设该外置存储在linux系统中被识别为/dev/sdb,使用fdisk /dev/sdb进入分区工具操作界面. 按p键打印当前外置存储分区情况,如果显示为空,则表示此外置存 ...
- 记一次令人发狂的 bug Eclipse 开不开 tomcat 7.0
改项目,结果发现以前的项目也出了问题,就删除了系统用户下面workplace里的文件夹,结果,eclipse被清空,重新添加项目,发现一堆bug; 最让我崩溃的是,用tomcat 7.0跑项目,反复出 ...
- arm汇编(c内嵌汇编及c和汇编互调)
C语言编译成汇编: arm-linux-gcc -S test.c -o test.S C语言编译成可执行文件: arm-linux-gcc test.c -o test 多个文件编译链接: arm- ...