2013-03-19 84 views
11

これはPHP/MySQLで何が欠落しているかについての非常に直接的な質問です。まず、コンピュータはWindows 7のマシンで、XAMPP(Apache、PHP、MySQLなど)を実行しています.Windows/IISなどはありません。PHPがmysqliで遅い

マシンは高速で、PHPは&です。しかし、PHPで動作するマシンは1台あります。& MySQLは何らかの遅れです。具体的には、本質的に3秒です。実際には、あなたはコードが、それはこのようにその接続設定以外の何物でもやっていないようにやっているEVERYTHING削除する場合: - ちょうどこのPHPライン設定

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

を...と何のクエリまたは何もありませんオブジェクトをアップするには、ちょうど3秒かかります。

これに対して、この行をコメントアウトすると、ページは瞬時に表示されます。

どういうわけか、なぜこれが起こっているのですか?何かが間違っているようには見えません。ちょうど何とかこの3秒間にセットアップして、取り除きたいと思っています。ありがとう!これはローカルにホストされていて、このlocalhostを使用している場合

+2

mysqlサーバはマシンと同じホストにありますか? –

+0

mysqlに接続するためにlocalhostまたはコンピュータのネットワークパブリックIPを使用していますか? – Sebas

+0

接続していますか? –

答えて

9

はこれが原因MYSQLIがローカルホストとIPV6の処理方法である

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

を使用してみてください、あなたの問題になります。

-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がより速く接続する理由を説明する*理由*がありますか? –

+0

PDOのサポートプリペアドステートメント(クライアント側)mysqliは – jake

+0

ではありません。PDOのMySQLiとの主な利点は、データベースドライバのサポートです。この執筆時点では、PDOは12種類のドライバをサポートしていますが、MySQLのみをサポートするMySQLiとは異なります。 – jake