• 93 阅读
  • 1 回复

解决PHP5.4.7 连接 MsSQL Server 2012时出现【命名管道提供程序: 无法打开与 SQL Server 的连接】

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)

【详细错误】:Uncaught exception 'PDOException' with message 'SQLSTATE[08001]: [Microsoft][SQL Server Native Client 11.0]命名管道提供程序: 无法打开与 SQL Server 的连接 [2].
【解决办法】:
1. 从微软官方下载SQL Server 2012对PHP支持的应用程序:Microsoft Drivers 3.0 for PHP for SQL Server.
2. 释放文件后选择相应的DLL文件复制到PHP的Ext文件夹, 并在php.ini文件中加入相应的引用, 重启服务管理器.
3. 修改pdo的连接字符串:

代码 复制 - 运行

$conn = new PDO("sqlsrv:Server=ip地址; Database=数据库名称", "用户名", "密码");  

注:这里如果需要改变默认的1433端口,则需要在ip地址后加入“,端口号”即可~

如果第二步不清楚应该如何选择DLL文件,请参照http://blog.csdn.net/abandonship/article/details/6461881,于此相类似~
okey,来测试一下:

代码 复制 - 运行

$conn = new PDO("sqlsrv:Server=192.168.100.5; Database=TestDB", "BanL", "BanL123456");  
$query = 'select top 1 * from _T';  
$stmt = $conn->query( $query );  
while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ) {  
   print_r( $row );  
}  
$conn = null;  



/*Result:
Array ( [id] => 1 [value] => 11111 [createTime] => 2012-09-13 17:07:30.513 )

*/
Oh-Year, That's okey~
小鱼的淘宝店铺-多多支持哇

(win7)IIS7下处理sqlsrv not showing up in my phpinfo

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)

1. 官方网站下载Microsoft Drivers for PHP for SQL Server
2. 释放sqlsrv30wpi.exe文件至指定文件夹。选择其中的php_sqlsrv_53_ts_vc9.dll和php_pdo_sqlsrv_53_ts_vc9.dll两个文件放入php安装目录下的ext/下面。
(-- 注释:
a. 若服务管理器不是IIS,则需要选择vc6的两个dll文件。
b.  php_sqlsrv_53_ts_vc9.dll、php_pdo_sqlsrv_53_ts_vc9.dll是线程安全的驱动,环境是使用的php5ts.dll;若不需要使用线程安全可以选择php_sqlsrv_53_nts_vc9、php_pdo_sqlsrv_53_nts_vc9,这种情况下,服务器运行PHP应该加载的是php5.dll。

一些名称定义的解释:

php_sqlsrv_53_ts_vc9.dll和php_pdo_sqlsrv_53_ts_vc9.dll中的ts是指Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。

php_sqlsrv_53_nts_vc9和php_pdo_sqlsrv_53_nts_vc9中的nts是指Non Thread Safe就是非线程安全,在执行时不进行线程(Thread)安全检查。

-- 结束注释)

3. 修改php.ini文件:新加入

[sqlsrv]
extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll


4. 重新启动IIS后,再次启动phpinfo,如能看到sqlsrv的环境信息,表示配置成功~

注:php默认关闭错误信息显示,这里为了开发方便需要打开,修改php.ini文件如下:
display_errors = On
小鱼的淘宝店铺-多多支持哇