2017-06-21 40 views
1

系统信息调用未定义功能sqlsrv_connect() - 疑难解答

CMS:WordPress的

Web服务器:XAMPP

PHP版本:30年5月5日

MS Management Studio中17

目标

建立使用PHP

什么已经做了

  1. 下载SQLSRV驱动程序
  2. 复制的文件php_pdo_sqlsrv_55_nts.dllphp_pdo_sqlsrv_55_ts.dll到目录MSSQL数据库连接C:\xampp\php\ext
  3. 将以下几行添加到dyna MIC扩展部分在php.ini文件:extension=php_pdo_sqlsrv_55_ts.dllextension=php_pdo_sqlsrv_55_nts.dll
  4. 重启动Web服务器
  5. 确认SQLSRV在phpinfo()函数中列出

代码

$serverName = "technology-pc\sqlexpress"; 

// The connection will be attempted using Windows Authentication. 
$connectionInfo = array("Database"=>"example_db"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

if($conn) { 
    echo "Connection established.<br />"; 
} else { 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 

错误

调用未定义的函数sqlsrv_connect()

回答

2

您已经添加SQLSRV驱动程序扩展名列表的PDO变种,但没有加入碱司机php_sqlsrv_55_ts.dll

添加到php。INI:

extension=php_sqlsrv_55_ts.dll 

extension=php_sqlsrv_55_nts.dll 

此外,你真的应该使用驱动程序的任何线程安全(_ts.dll)或非线程安全(_nts.dll)版本,不都。我相信,当你使用Apache服务器时,你应该使用线程安全版本。所以你php.ini应该有:

extension=php_sqlsrv_55_ts.dll 
extension=php_pdo_sqlsrv_55_ts.dll 
+0

谢谢你带给我的关注。它现在完美。 – Ben

0

您可能编辑了错误的php.ini文件。用php信息检查正确的php.ini文件。

你可以使用这个脚本:

<?php echo phpinfo(); ?> 

或者,如果你有CLI访问类型的php -i获得的信息列出。 检查您的php.ini文件的正确路径。

0

尝试下面的代码连接MSSQL数据库

$server = 'dburl.com\MSSQLSERVER, 1433'; 
$username = 'uname'; 
$password = 'password'; 

$connectionInfo = array("Database"=>$database, "UID"=>$username, "PWD"=>$password,"ReturnDatesAsStrings"=>true); 
$conn = sqlsrv_connect($server, $connectionInfo);