12
4

3 回答 3

17
于 2012-11-28T04:40:59.220 回答
14

它可能发生在几个地方:1)查询本身,或 2)mysqli 实例的创建(以及生成的数据库连接)。如果我不得不猜测,我怀疑你的问题是(2)。

一种快速而简单的调试方法是使用microtime().

http://www.php.net/manual/en/function.microtime.php

例子:

$start = microtime(TRUE); // Start counting

$mysqli = new mysqli('localhost', 'root', '', 'testdb');

$temp = microtime(TRUE) - $start;
echo "Time to connect: {$temp}";  // Check elapsed time

$mysqli->set_charset("utf8");
if(mysqli_connect_errno()) {
    echo "Connection Failed: " . mysqli_connect_errno();
    exit();
}

$temp = microtime(TRUE) - $start;
echo "Time to setup: {$temp}";  // Check elapsed time

$testreceive = $_POST['test_id'];
$query = "SELECT First_Name from tblperson";
$result = $mysqli->query($query);

$temp = microtime(TRUE) - $start;
echo "Time to query: {$temp}";  // Check elapsed time

$row = $result->fetch_all(MYSQLI_ASSOC);

$temp = microtime(TRUE) - $start;
echo "Time to fetch {$temp}";  // Check elapsed time
于 2012-11-28T04:46:08.263 回答
0

问题是从 localhost 到 127.0.0.1 的 localhost 查找。

解决方案是在@Wap 已回答的情况下将该行添加127.0.0.1 localhost到您的 Windows 主机文件中(感谢您的回答!)

或者,如果您无权访问主机文件,您只需在 php mysqli 调用中将 localhost 更改为 127.0.0.1: $mysqli = new mysqli('127.0.0.1'), 'root', '', 'testdb');

于 2015-04-30T17:15:24.540 回答