Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Korzystać z klasy bazy danych PDO bez tworzenia nowego połączenia za każdym razem?

Powinieneś wybrać drogę wskazaną w odpowiedzi pana voida. W skrócie:

  1. pozbądź się clsDatabase.
  2. Utwórz instancję PDO.
  3. przekaż go do właściwości clsDBLogin, tak jak pokazano w odpowiedzi mr.void.
  4. Następnie użyj tej instancji pdo w postaci $this->db->prepare() i tak dalej

Więc powinno być jak

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak porównywać ciągi dla pojedynczej spacji

  2. Eksportuj bazę danych MySQL za pomocą PHP

  3. Jak zaimportować dane z mysql do solr

  4. Jakie jest domyślne zachowanie MySQL podczas ON DELETE?

  5. Utworzyć, jeśli wpis nie istnieje, w przeciwnym razie zaktualizować?