看见就非常 / server / PHP5.4 如何连接MS Sql Server

分享

   

PHP5.4 如何连接MS Sql Server

2014-08-01  看见就非常

安装好xampp后,如果你的php需要访问ms sqlserver数据库,就需要这个步骤,否则会出错:

Fatal error: Call to undefined function sqlsrv_connect() in D:\appServ


windows系统下,PHP5.3以上的版本已经不支持mssql扩展,所以如果你需要和sql server通信需要到http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx自行下载微软提供的The SQL Server Driver for PHP。

下载后解压缩,将所有的.dll文件拷贝到php安装目录的ext文件夹中,接下来打开php.ini,添加以下语句打开php_sqlsrv和php_pdo_sqlsrv扩展:
——————————————————–
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_54_ts.dll
[PHP_SQLSRV]
extension=php_sqlsrv_54_ts.dll

—————————————————

这里的54表示的是php5.4,如果你的是5.3版,就改成53,如果你的PHP版本是线程安全的,那么你的PHP安装目录下应该有一个php5ts.dll,与这里的两行语句对应,如果是php5nts.dll,那么上面的语句应该是:
—————————————————————-
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_54_nts.dll
[PHP_SQLSRV]
extension=php_sqlsrv_54_nts.dll
—————————————————-


重启后,如果出现了这个错误:

PHP Startup sqlsrv Unable to initialize module

则表明你的php.ini中配置的dll版本、ext中放的dll版本和实际php的版本不一致。查看当前php版本的方法是:http://localhost:port/,查看php状态。


重启后上述错误不再出现,但是qlsrv_connect($Server,$conInfo); 却总是运行不过,打出错误信息:

  1. $conInfo=array('Database'=>$database,'UID'=>$uid,'PWD'=>$pwd);  
  2. $link=sqlsrv_connect($Server,$conInfo);   
  3.   
  4. if( $link ){  
  5.     // echo "Connection established.\n";  
  6. }  
  7. else{  
  8.     //echo "Connection could not be established. ";  
  9.     print_r( sqlsrv_errors(), true);  
  10.    if( ($errors = sqlsrv_errors() ) != null) {  
  11.         foreach( $errors as $error ) {  
  12.             echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";  
  13.             echo "code: ".$error[ 'code']."<br />";  
  14.             echo "message: ".$error[ 'message']."<br />";  
  15.         }  
  16.     }  
  17.     die("");  
  18. }  

这一次看到问题所在了:

SQLSTATE: IMSSP<br />code: -49<br />message: This extension requires the Microsoft SQL Server 2012 Native Client...

下载Microsoft SQL Server 2012 Native Client进行安装。

这下就ok了。


最后有点疑惑:

我的sql server装的本来是2008版的,为什么需要Microsoft SQL Server 2012 Native Client?




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多