fis*_*g3r 10 php windows-authentication sql-server-2008
我在MS Server 2012 R2上运行XAMPP.我需要连接到只接受集成的win身份验证的MSSQL服务器.
如果我只是尝试下面的操作,我会在SQL Server上遇到登录失败和错误日志,而SQL身份验证不是一个选项.它只接受来自某个用户的连接.显然PHP脚本没有在该帐户下运行.
$server = "sqlServerName";
$SQLUser = "username";
$SQLPass = "pw";
$SQLDatabase = "db";
$link = mssql_connect($server,$SQLUser,$SQLPass);
Run Code Online (Sandbox Code Playgroud)
因为我使用PHP 5.3.1 sqlsrv_connect
不是一个选项.我试图加载它的PHP驱动程序,但它只是没有工作.我无法更改sql server的身份验证,我也无法使用任何其他版本的PHP.
我也无法打开secure_connection,因为我必须能够连接到需要"正常"sql身份验证的其他sql服务器:
mssql.secure_connection = Off
如何连接到我有问题的SQL服务器?
更新:升级xampp
到最新版本.PHP
现在版本5.6.8
我仍然无法使用,sqlsrv_connect()
即使我安装了必要的驱动程序并添加了每个单独的DLL php.ini
.重启apache
几次.任何线索?
错误消息:致命错误:调用未定义的函数sqlsrv_connect()
好.如果不在服务器上调试服务器问题很难,但我已经用php和SQL Server做了很多,所以我会尽力分享我的经验.
首先,非常高兴您从5.3.1更新了PHP的版本是古老而且非常不安全.以下是您系统的一些健全性检查.这可能对你没有任何帮助,但所有这些都值得检查.
首先确保您可以使用SQL Server Management studio使用您提供的凭据连接到SQL Server.这意味着您在php中使用的凭据与Windows身份验证凭据相同.您应该能够同时拥有两个连接,以便您可以同时进行更改并测试连接.
一旦你确认你可以连接管理工作室这里是php配置检查:
phpinfo()
.然后搜索pdo_sqlsrv.如果它存在,其余的检查可能不是必要的,但因为你已经工作了这么长时间,所以无论如何都要检查它们.extension=php_sqlsrv_55_ts.dll
并按此extension=php_pdo_sqlsrv_55_ts.dll
顺序.但我不认为秩序很重要.再次,你的将是56,而"ts"可能是"nts".一旦通过管理工作室中的auth creditionals连接到sql server并在phpinfo()中查看pdo_sqlsrv,这里是您在代码中查看的最后一件事.
您上面的代码仍然是针对mssql扩展的.您可能只是没有使用最新更改进行更新.对于sql server扩展,您的代码应如下所示:
$connectionInfo = array(
'UID' => $dbuser,
'PWD' => $dbpass,
'LoginTimeout' => 1,
);
$host = $host . ', ' . $port;
$connection = sqlsrv_connect($host, $connectionInfo);
$error_messages = sqlsrv_errors();
对于Windows身份验证,请排除uid和pwd.
$connectionInfo = array();
$conn = sqlsrv_connect( $host, $connectionInfo);
如果您有更多问题,请告诉我哪个步骤不起作用,以便我们可以通过该步骤深入了解更多细节.
归档时间: |
|
查看次数: |
4072 次 |
最近记录: |