无法通过PHP连接到MySQL

Jal*_*lil 6 php mysql apache iis windows-7

看起来像一个初学者的问题,但我似乎无法弄清楚...

我有一个全新的Windows 7 x64/Apache 2.2/PHP 5.2/MySQL 5 x64安装.
实际上我尝试了IIS和Apache.

但是这个PHP代码不起作用:

<?
$hostname = "localhost";
$username = "xxx";
$password = "xxx";

$db = mysql_connect($hostname,$username,$password) or die("die");
?>
Run Code Online (Sandbox Code Playgroud)
  • 我可以使用直接命令行将OK连接到MySQL数据库,当然使用相同的登录名/密码.
  • 我可以使用相同的登录名/密码通过网络访问MySQL数据库.
  • PHP正在以其他方式工作(echo("hello world")确实有效).
  • MySQL扩展在php.ini中启用.事实上,如果我禁用它,我会得到Call to undefined function mysql_connect().
  • Windows防火墙已禁用.
  • 没有错误消息.它只是没有返回任何东西.600秒后,它超时:

        Fatal error: Maximum execution time of 60 seconds exceeded in
            C:\Ampache\try.php on line 6
    
    Run Code Online (Sandbox Code Playgroud)

任何线索?

Jal*_*lil 10

等待等待......我想我发现了......

RTM他们说:-)全部是http://php.net/manual/fr/function.mysql-connect.php:

Bruce Kirkpatrick - 2009年10月28日05:48:
在Windows Vista或更高版本上,Windows/System32/drivers/etc/hosts文件中的条目导致与"localhost"的mysql_connect()连接超时并且永远不会连接.这发生在php 5.3及更高版本上,因为它现在使用mysql本机驱动程序,与先前版本中的libmysql.dll相比,它已经改变了它的连接行为.它不是PHP错误,但绝对是新Windows系统上用户的配置问题.

要解决此问题,您必须删除这样的条目
::: 1 localhost

并确保您仍然拥有:
127.0.0.1 localhost

此外,您可以更改代码以连接到IP,但如果您有许多网站,这是不方便的.

在Windows Vista,Windows 7和Windows Server 2008上会出现此问题.

实际上它可以使用

$host = "127.0.0.1";
Run Code Online (Sandbox Code Playgroud)

谢谢你的关注 !