我发帖前最近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);
?>
答案 0 :(得分:0)
你在评论中说:
当我尝试连接sqlsrv_connect时有什么奇怪的事 &#34; localhost&#34;,$ connectionInfo);它是很好的连接,但当我尝试 使用mysqli连接。它显示错误
这没什么奇怪的。线索就在您使用的方法的名称中:
<强> MySQL的强> i_connect()
该代码库仅用于连接 MySQL 数据库。
如果要连接到 SQL Server ,则需要使用 sqlsrv _ 库。它们是完全不同的数据库平台,具有完全不同的PHP库,可用于处理它们。正如您所见,当您使用sqlsrv_connect
时,它会起作用。
我不确定为什么之后你会尝试使用mysqli
,或者为什么你希望这会成功。