0

私はこのログインシステムを持っています:

    require_once "conexion.php";


    class login extends conexion {



    public function log_user($user,$pass)
        {
        $conexion = mysql_conexion();
            $login = "SELECT user_name,user_pass,id FROM menssager_user WHERE user_name='$user' AND user_pass='$pass'";
                $e = $conexion->prepare($login);
                    $e->execute();

                $re = $e->fetch(PDO::FETCH_ASSOC);

                    if($user == $re["user_name"] && $pass == $re["user_pass"])
                    {

                    $this->is_online($re["id"]);
                    return $re["id"];
                    }

        $conexion = null;

        }   }

そして、そのコードを実行すると、そのユーザーが存在するかどうかを確認するのに 1.3 秒かかり、DB には 2 つのユーザー名しかありません。なぜそんなに遅いのか誰か教えてもらえますか?注: 昨日、5.4.7 にアップグレードし、コードを書き直しました (そのバージョンの新機能用)。

アップデート:

そしてデータベース接続:

class conexion{

        public function mysql_conexion(){

            $conexion_path = "mysql:dbname=menssager;host:127.0.0.1";
                $root = "root";
                $pass = "";

                try{

                    $conectar = new PDO($conexion_path,$root,$pass);
                    $conectar->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
                    $conectar->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                }catch(PDOException $error)
                {
                    echo $conectar = $error->getMessage();
                }
                return $conectar;

        }
    }
4

1 に答える 1

0

接続時間と実行時間をまだ測定している間は、答えを推測する危険があります。遅延の原因は接続時間だと思います。以前に尋ねられたこの同様の質問を見てください。 https://serverfault.com/questions/408550/connecting-to-mysql-from-php-is-extremely-slow

逆引き DNS ルックアップをオフにすると役立つ場合があります。オフにする方法を示すリンクを追加します。

http://developers.sugarcrm.com/wordpress/2012/01/10/howto-turn-off-mysql-reverse-dns-lookup-to-speed-up-response-times/

于 2013-02-13T01:32:12.463 に答える