sql >> Database teknologi >  >> RDS >> Mysql

Brug PDO database klasse uden at oprette ny forbindelse hver gang?

Du bør tage den vej, der er vist i mr.voids svar. Kort sagt:

  1. slip af med clsDatabase.
  2. Opret en forekomst af PDO.
  3. giv det til clsDBLogins egenskab som det er vist i mr.voids svar.
  4. Brug derefter denne pdo-instans i form af $this->db->prepare() og så videre

Så det skulle være som

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. Spring Data JPA Auditing fungerer ikke for JpaRepository-opdateringsmetoden med @Modifying annotation, hvorfor?

  2. Upload billede til server og gem billedsti i mysql-database

  3. Sådan opretter du en simpel valgforespørgsel i designvisning i Access 2016

  4. hvordan man får LAST_INSERT_ID via lagret procedure i php