PHP7未连接到Microsoft SQL Server 2012

时间:2017-04-16 12:20:18

标签: php sql sql-server-2012

我发帖前最近3天一直在寻找答案。

我安装了SQL Server 2012和Apache24,PHP7.0 Apache开始很好,PHP7开始很好 我可以浏览localhost / info.php,它显示完美 安装了ODBC 安装了SQL扩展驱动程序 配置PHP.ini和apache conf文件

SQL服务通过SQL配置管理器启动 还允许在网络配置中使用TCP \ IP和命名管道

我无法使用Microsoft SQL服务器管理器登录SQL服务器

所以一切似乎都很好,但每次我尝试使用简单的PHP代码将我的PHP连接到SQL服务器时,我都会收到以下错误

  

警告:mysqli_connect():( HY000 / 2002):无法建立连接   因为目标机器主动拒绝它。在   第13行的C:\ Apache24 \ htdocs \ index.php无法连接

还禁用了防火墙,甚至添加了一个包含少量端口的规则 我在Windows 10 Enterprise上运行

当我将服务器名称更改为WALEED \ SQLEXPRESS时,我得到以下内容

  

警告:mysqli_connect():php_network_getaddresses:getaddrinfo   失败:没有这样的主人知道。在C:\ Apache24 \ htdocs \ index.php上   13

尝试在SQL服务器日志中搜索但找不到任何错误

我的PHP的所有扩展都在info.php

上正常工作

索引文件:

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

$dbhost = 'localhost';
$dbuser = 'admin';
$dbpass = 'admin2017';
$db     = 'sunto';    

$conn  = mysqli_connect($dbhost,$dbuser,$dbpass,$db);

if(! $conn){
  die('Could not connect') ;
}

echo 'Successfully Connected';    

$sql = 'Connected Successfully';
  $retvalue = mysqli_query($sql);

  if(! $retvalue){
    die('Cannot connect to SQL: ');
  }

echo 'DataBase test_db13 has successfully created';    
mysqli_close($conn);    
?>

1 个答案:

答案 0 :(得分:0)

你在评论中说:

  

当我尝试连接sqlsrv_connect时有什么奇怪的事   &#34; localhost&#34;,$ connectionInfo);它是很好的连接,但当我尝试   使用mysqli连接。它显示错误

这没什么奇怪的。线索就在您使用的方法的名称中:

<强> MySQL的 i_connect()

该代码库仅用于连接 MySQL 数据库。

如果要连接到 SQL Server ,则需要使用 sqlsrv _ 库。它们是完全不同的数据库平台,具有完全不同的PHP库,可用于处理它们。正如您所见,当您使用sqlsrv_connect时,它会起作用。

我不确定为什么之后你会尝试使用mysqli,或者为什么你希望这会成功。