sql >> データベース >  >> RDS >> Mysql

毎回新しい接続を作成せずにPDOデータベースクラスを使用しますか?

    あなたはmr.voidの答えに示されている道を進むべきです。要するに:

    1. clsDatabaseを削除します。
    2. PDOのインスタンスを作成します。
    3. mr.voidの回答に示されているように、clsDBLoginのプロパティに渡します。
    4. 次に、このpdoインスタンスを$ this-> db-> prepare()などの形式で使用します

    したがって、

    のようになります。
    class clsDBLogin
    {
        public function __construct($db)
        {
            $this->db = $db;
        }
    
        public function validateLogin($email)
        {  
            $email = trim($email);
    
            // Check user in db to start verification
            $query = 'SELECT * FROM users u, users_info ui 
                      WHERE u.users_id = ui.users_id AND u.email = ?';
            $stmt = $this->db->prepare($query);
            $stmt->execute([$email]);
            return $stmt->fetch();
        }
    }
    
    $dsn = 'mysql: host=localhost;dbname=test;charset=utf8';
    $options = array(
            PDO::ATTR_PERSISTENT            => true,
            PDO::ATTR_ERRMODE               => PDO::ERRMODE_EXCEPTION,
    );
    // Create a new PDO instanace
    $pdo = new PDO($dsn, $this->user, $this->pass, $options); 
    
    $DBLogin = new clsDBLogin($pdo);
    $user = $DBLogin->validateLogin($email);
    


    1. MySql.Data.dllのIO.FileNotFoundException:System.Security.Permissionsを読み込めません

    2. Djangoは多くのテーブルへの1つの外部キーをモデル化します

    3. MySQLでDESCインデックスを作成するにはどうすればよいですか?

    4. utf8_binフィールドのMYSQL大文字と小文字を区別する検索