我试图将sqlsvr连接到Apache服务器上的php。以下是详细信息:
PHP版本7.1.3
PHP扩展版本: API20160303,TS,VC14
我从这里下载了与php版本7.1兼容的sqlsvr驱动程序:github.com/Microsoft/msphpsql/releases
我将 php_pdo_sqlsrv_71_ts.dll 和 php_sqlsrv_71_ts.dll 复制到 C:\ PHP \ ext 目录中。
然后我试图找到 php.ini *文件,但只能找到 php.ini-production 和 php.ini-development 在C:\ PHP目录中。 我在另一个线程上读到,在php 7+中,他们删除了php.ini并说要使用php.ini-production。
我做了哪些,并将2个扩展添加到php.ini-production:
extension=php_sqlsrv_71_ts.dll
extension=php_pdo_sqlsrv_71_ts.dll.
注意*: 已加载的配置文件在我的localhost网站上为(无)。
然后我重新启动了Apache服务器,但它似乎没有连接到sqlsvr(我用phpinfo()来检查)。
我仍然可以正常连接到网站,尝试实施sqlsvr
后没有任何变化我也试过使用微软官方网页上的驱动程序,但没有成功
非常感谢任何帮助
修改
所以我通过执行以下操作来修复它: 我在php.ini-development中复制了所有内容并创建了一个名为php.ini的新文件(以前没有存在)。我通过取消注释这些行来修改它:
extension=c:/php/ext/php_curl.dll
extension=c:/php/ext/php_gd2.dll
extension=c:/php/ext/php_intl.dll
extension=c:/php/ext/php_mbstring.dll
extension=c:/php/ext/php_mysqli.dll
extension=c:/php/ext/php_openssl.dll
extension=c:/php/ext/php_soap.dll
extension=c:/php/ext/php_xmlrpc.dll
然后我添加了这两行:
extension=php_pdo_sqlsrv_71_ts.dll
extension=php_sqlsrv_71_ts.dll
现在我重新启动了Apache服务器,以及当我搜索" sqlsrv"时,它在那里。我还注意到加载配置文件现在说C:\ PHP \ php.ini而不是(none)。
然后我用google搜索是否建立了连接并找到了这段代码,我将其放入C:\ Apache24 \ htdocs \目录并将其命名为connect.php;
<?php
$serverName = "serverName\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$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));
}
?>
我重新启动apache服务器并转到localhost / connect.php并获取此消息:
&#34;无法建立连接。 数组([0] =&gt;数组([0] =&gt; IMSSP [SQLSTATE] =&gt; IMSSP [1] =&gt; -49 [代码] =&gt; -49 [2] =&gt;此扩展程序需要用于SQL Server的Microsoft ODBC驱动程序11或13.访问以下URL以下载适用于x64的SQL Server的ODBC驱动程序11或13:http://go.microsoft.com/fwlink/?LinkId=163712 [message] =&gt;此扩展需要Microsoft ODBC驱动程序11或13 for SQL Server。访问以下URL以下载适用于x64的SQL Server的ODBC驱动程序11或13:http://go.microsoft.com/fwlink/?LinkId=163712)[1] =&gt;数组([0] =&gt; IM002 [SQLSTATE] =&gt; IM002 [ 1] =&gt; 0 [code] =&gt; 0 [2] =&gt; [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序[message] =&gt; [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序))&#34;
我转到链接,但是驱动程序仅支持php 7.0(我有7.1.3)但是我还是尝试了它,并且它没有用。
答案 0 :(得分:0)
解决了我遇到的问题。
我只需要从这里下载ODBC驱动程序: https://www.microsoft.com/en-us/download/confirmation.aspx?id=50420