Mysql
 sql >> база данни >  >> RDS >> Mysql

Използвате ли клас база данни на PDO, без да създавате нова връзка всеки път?

Трябва да поемете по пътя, показан в отговора на mr.void. Накратко:

  1. отървете се от clsDatabase.
  2. Създайте екземпляр на PDO.
  3. предадете го в свойството на clsDBLogin, както е показано в отговора на mr.void.
  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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да мигрираме MySQL от Amazon EC2 към вашия On-Prem център за данни без престой

  2. По-добро разбиране - Class.forName(com.mysql.jdbc.Driver).newInstance ();

  3. Woocommerce получава идентификатор на продукта, използвайки продуктова SKU

  4. Съществуват проблеми с добавянето на нов идентификатор (автоматично увеличение) след таблицата

  5. Използване на SQL резултат в цикъл foreach