2013-03-19 63 views
11

我(希望)这是一个非常简单的问题,关于什么是错过的PHP/MySQL。首先,计算机是Windows 7机器,运行XAMPP(Apache,PHP,MySQL等) - 没有Windows/IIS等。PHP缓慢与mysqli

这台机器很快,MySQLMySQL运行速度超快。然而,有一台机器的工作方式与PHP & MySQL是某种延迟 - 具体来说,它本质上是3秒。事实上,如果你移除所有的代码就是这么做的,它是做什么比建立它的连接这样更多:

$db = new mysqli($hostname, $username, $password, $database); 

...并没有查询或任何东西 - 只是这个PHP线,设置这个对象,它需要3秒。

相比之下,您注释掉了这一行,并且该页面是即时的。

无论如何想法为什么会发生这种情况?它看起来并不是什么错误,只是以某种方式设置在这3秒内,我们想摆脱。谢谢!

+2

mysql服务器与机器在同一主机上吗? – 2013-03-19 22:39:52

+0

你使用本地主机还是计算机的网络公有IP来连接mysql? – Sebas 2013-03-19 22:40:12

+0

它连接吗? – 2013-03-19 22:43:56

回答

9

如果这是本地托管和你正在使用本地主机,这将是你的问题,请尝试使用

$db = new mysqli('127.0.0.1', $username, $password, $database); 

这是因为如何处理MYSQLI本地主机和IPV6

-2
$orig = $_GET['orig']; 
$des_id = $_GET['des_id']; 
try { 
    $dbuser = "kim"; 
    $dbpass = "kim"; 
    $conn = new PDO('mysql:host=localhost;dbname=destination', $dbuser, $dbpass); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
    $stmt = $conn->prepare("SELECT pl_id FROM view_places WHERE name = :name LIMIT 1"); 

    $stmt->bindParam(':name',$orig); 
    $stmt->execute(); 
    $result_1 = $stmt -> fetch(); 
    $res1 = $result_1["pl_id"]; 

    $stmt->bindParam(':name', $des_id); 
    $stmt->execute(); 
    $result_2 = $stmt -> fetch(); 
     $res2 = $result_2["pl_id"]; 
     echo 'origin_number:'.$res1. ', '.'destination_id:'.$res2; 
    } catch(PDOException $e) { 
      echo 'ERROR: ' . $e->getMessage(); 
    } 
+0

当然,你有*理由*这解释了为什么PDO将更快地连接? – 2013-08-07 12:45:24

+0

PDO支持编写语句(客户端)mysqli不是 – jake 2013-08-07 12:50:26

+0

PDO比MySQLi的核心优势在于其数据库驱动程序支持。在撰写本文时,PDO支持12种不同的驱动程序,而MySQLi仅支持MySQL。 – jake 2013-08-07 12:51:54