我使用的是 Windows 7、Apache 2、PHP 5、MySQL 5,它们都在同一台机器上。我发现了一个有趣的问题,我有以下代码:
$sql = "select * from user1";
$conn = mysql_connect("localhost", "root", "xxxxxxxx");
mysql_select_db("test1");
mysql_query("set names utf8");
$result = mysql_query($sql, $conn);
while ($row = mysql_fetch_assoc($result)){
foreach ($row as $key => $value){
echo $key." => ".$value." || ";
}
echo "<br/>";
}
mysql_free_result($result);
mysql_close($conn);
上述代码的运行时间超过 1 秒。
当我使用127.0.0.1
代替时localhost
,运行时间约为 10 毫秒。
我试图在互联网上找到根本原因,结果如下:
我最近将我的开发从 XP 转移到 Windows 7,发现我开发的网页需要 5 秒才能加载。这当然是不可接受的,所以我不得不追查问题所在。我最终找到了有问题的函数/方法 pdo::construct。我还发现 mysql_connect 需要大约 1 秒来建立连接。经过一番谷歌搜索后,我发现了一个解释,即 php 存在 IPv6 问题,您可以通过禁用 IPv6 或在建立连接时切换到 ipaddress 127.0.0.1 来解决问题。
我想知道 PHP 上 IPv6 的问题是什么,只是想更深入地了解。谢谢。