我是PHP的新手。 PHP已安装并正常运行,现在我正在尝试与SQL Server DB建立连接。遵循Youtube视频的说明。经过并完成了驱动程序的安装,但它没有工作。调用sqlsrv_connect()函数后,我的测试页停止运行代码。我甚至没有收到错误消息。以下是我的测试页代码:
<?php
echo '<br><span style="font-weight:bold;">PHP functioning. This line is being echoed out.</span><br />';
/*No problems yet...*/
$serverName = "Myserver";
$connectionInfo = array('Database'=>'nde', 'UID'=>'sa', 'PWD'=>'!hegEcu&3ATr');
$conn = sqlsrv_connect($serverName, $connectionInfo);
/*Nothing is appearing on the screen after this */
echo 'Still working...<br />';
if ($conn) {
echo 'Connection established.<br />';
} else {
echo 'Nope.<br />';
die(print_r(sqlserv_errors(), TRUE));
}
?>
我正在运行PHP 7.0.21和SQL Server 2014.我去了下载我认为需要的两个DLL文件 - php_pdo_sqlsrv_7_ts_x64.dll和php_sqlsrv_7_ts_x64.dll。我将它们复制到Program Files / PHP / v7.0 / ext。我作为管理员进入了PHP.ini,并输入:
延长= php_pdo_sqlsrv_7_ts_x64.dll
延长= php_sqlsrv_7_ts_x64.dll
在Windows Extensions部分中。我保存了PHP.ini,重新启动了IIS Admin Service和World Wide Web Publishing Service,然后进入IIS管理器并重新启动了服务器。 PHP仍在工作,但在sqlsrv_connect()调用之后我还没有得到任何回音。
答案 0 :(得分:0)
好的,我明白了。正如ctwheels建议的那样,我只是安装了nts驱动程序版本而不是ts版本,它们是php_pdo_sqlsrv_7_nts_x64.dll和 延长= php_sqlsrv_7_nts_x64.dll。它使用sqlsrv_connect();我还没有尝试过使用PDO。我是PHP的新手,不熟悉PDO,但我可能会再次遇到它,特别是当我开始研究PHP框架(Cake和CodeIgniter)时。
为可能也是PHP新手的人分享一个重要的事情 - PHP文档说sqlsrv_connect()的$ serverName参数应该是servername / instancename的格式。所以我用这个查询得到了两个:select @@ servername +&#39; \&#39; + @@ servicename,得到了&#34; Myserver \ MSSQLServer&#34;。但是,使用此作为$ serverName参数会导致连接失败。只有在我拿出&#34; \ MSSQLServer&#34;它成功连接了吗?因此,在上面的代码中,正确使用的值是$ serverName =&#34; Myserver&#34;。