Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

हर बार नया कनेक्शन बनाए बिना पीडीओ डेटाबेस वर्ग का प्रयोग करें?

आपको श्रीमान शून्य के उत्तर में दिखाई गई सड़क को अपनाना चाहिए। संक्षेप में:

  1. clsDatabase से छुटकारा पाएं।
  2. पीडीओ का एक उदाहरण बनाएं।
  3. इसे clsDBLogin की संपत्ति में पास करें जैसे कि यह mr.void's answer में दिखाया गया है।
  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 Group_Concat () बनाम टी-एसक्यूएल String_Agg ()

  2. पीडीओ का उपयोग करके MySQL से संख्यात्मक प्रकार कैसे प्राप्त करें?

  3. mysql_real_escape_string के बाद स्ट्रिप्सलाश का उपयोग करना

  4. जब मैं एक नया इंडेक्स जोड़ता हूं तो MySQL में किसी इंडेक्स की कार्डिनैलिटी अपरिवर्तित क्यों रहती है?

  5. शामिल होने पर डुप्लीकेट कॉलम