Php Pdo Database Connection class

php pdo নিয়ে কাজ করার জন্য আমরা নিচের পদ্ধতি অনুসরণ করবো।
প্রথমে আমরা একটি ক্লাস তৈরী করবো এবং এর মধ্যে আমাদের কানেকশন এর কোডটি রাখবো এবং যখন কোনো সময় আমাদের কানেক্শনটি দরকার হবে তখন সিম্পলি আমরা এটাকে বেবহার করবো।
নিচের কানেকশন ক্লাসটি আমি ২০১৮ সালে নিজের মতো করে বানিয়েছি যেটা বেবহার করে (sql ,mysql ,pgsql ) ইত্যাদি ডাটাবেস এর সাথে সংযোগ স্থাপন করে বিভিন্ন কার্য সম্পাদন করা যায়।

<?php

//////////////////////////////////////////////////////////////
$host = "localhost"; //  Server Name Of Host Location Where Your Database You Can Use Ip Address Like 127.0.0.1  .
$db = "test"; // Put Here Your Database Name Where You Store And Receive Information .
$user = "root"; //Your Server Login User Name
$pass = "usbw"; // Server Login Password by Default "" for Local Pc

$db_type;





class Database
{



    public $charset = "utf8mb4";// Which Unicode Use To Received And Store Data Opreation utf8mb4m give More Freture than utf8
    public $port = 3306; //port number of server
    public $pdo;
   public $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION, 
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => FALSE,
        PDO::ATTR_PERSISTENT         => true,
    ];

    public function __construct($db_type,$host,$db,$user,$pass)
    {
        
        if (!isset($this->pdo)) {
            if ($db_type == "mysql") {
                $dsn  = "mysql:host=$host;dbname=$db;charset={$this->charset};{$this->charset}";
               try {
                   $this->pdo = new PDO($dsn,$user,$pass,$this->options);
                   echo "connected";
               }
               catch (PDOEXCEPTION $e){
               echo $e->getMessage();
               }
           }
   
   
           elseif ($db_type == "pgsql") {
               $dsn  = "pgsql:host=$host;dbname=$db;charset={$this->charset};{$this->charset}";
               try {
                $this->pdo = new PDO($dsn,$user,$pass,$this->options);
                   //$dsn = "pgsql:host=$host;port=5432;dbname=$db;user=$username;password=$password";
   
                   echo "connected";
               }
               catch (PDOEXCEPTION $e){
               echo $e->getMessage();
               }
           }
   
           elseif ($db_type == "sql") {
               $dsn  = "sqlsrv:server=$host;Database=$db;";
               try {
                $this->pdo = new PDO($dsn,$user,$pass);
   //PDO( "sqlsrv:server=$serverName ; Database=AdventureWorks", "", "");
                   echo "connected";
               }
               catch (PDOEXCEPTION $e){
               echo $e->getMessage();
               }
           }
   
        }
  


    }
}


$dbcon = new Database("mysql","localhost","test","root","usbw");
// To Use This Connection First  global $dbv; then use     $stmt = $dbcon->pdo->prepare( $sql);

এই ক্লাসটি ব্যবহার করার নিয়ম নিম্নই দেখানো হলো :
১. যদি আমরা কোনো ডেটাবেসে কানেকশন করতে চাই তাহলে ক্লাসের কনস্ট্রাক্ট মেথডে প্যারামিটার হিসাবে ডাটাবেসের ইনফরমেশন দিলেই ডাটাবেসের সাথে সংযোগ করবে। যেমন $dbcon = new Database(“mysql”,”localhost”,”test”,”root”,”usbw”); তবে প্রথমে কানেকশন ক্লাসকে ইনক্লুড করে নিতে হবে। এই ভ্যারিয়েবল টি echo করলে কানেক্টেড নাম স্ট্রিং প্রদান করবে যেটা কোনো এক জায়গায় শো করে আমরা বুঝতে পারবো যে আমরা সার্ভার এর সাথে সংযুক্ত আছি কিনা যেমন : echo $dbcon ;

২. এই ক্লাসটি বেবহার করে কিভাবে ডাটাবেস অপারেশন করবো ?
কানেকশন ক্লাস এর কানেক্শনটি ব্যবহার করার জন্য সিম্পলি এভাবে বেবহার করবো : $stmt = $dbcon->pdo->prepare( ‘SELECT * FROM users WHERE email = ? AND status=?’); প্যারামিটার হিসাবে আমরা সকল কোয়েরি দেব এবং পরবর্তীতে $stmt কে বেবহার করে কাজ সম্পাদন করবো।

$stmt->execute([$email, $status]);
$user = $stmt->fetch();
// or
$stmt = $pdo->prepare(‘SELECT * FROM users WHERE email = :email AND status=:status’);
$stmt->execute([’email’ => $email, ‘status’ => $status]);
$user = $stmt->fetch();

এখন আমরা দেখবো কিভাবে প্রাক্টিক্যালয় কাজ করা যায়.

Published by

Unknown's avatar

Nusrat Faria

I Am A Web Developer And A Android Developer. This Is My Personal Blog So Noted My Work For Helping People .

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.