<?php
class content
{
    private $host      = DB_HOST;
    private $user      = DB_USER;
    private $pass      = DB_PASS;
    private $dbname    = DB_NAME;
     
    private $stmt;
    private $dbh;
    private $error;
  
    public function __construct(){
        // Set DSN
        $dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
        // Set options
        $options = array(
                PDO::ATTR_PERSISTENT => true,
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
        );
        // Create a new PDO instanace
        try{
            $this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
             /*** close the database connection ***/
        //$this->dbh = null;
 
        }
        // Catch any errors
        catch(PDOException $e){
            $this->error = $e->getMessage();
        }
    }
     
     
     
     
     
     // query
    public function query($query){
    $this->stmt = $this->dbh->prepare($query);
    }  
     
     
    public function bind($param, $value, $type = null){
        if (is_null($type)) {
            switch (true) {
                case is_int($value):
                    $type = PDO::PARAM_INT;
                    break;
                case is_bool($value):
                    $type = PDO::PARAM_BOOL;
                    break;
                case is_null($value):
                    $type = PDO::PARAM_NULL;
                    break;
                default:
                    $type = PDO::PARAM_STR;
            }
        }
        $this->stmt->bindValue($param, $value, $type);
    }
 
 
 
            public function execute(){
                return $this->stmt->execute();
            }
             
             
             
             
            public function resultset(){
                $this->execute();
                return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
            }
             
             
             
             
             
            public function single(){
                $this->execute();
                return $this->stmt->fetch(PDO::FETCH_ASSOC);
            }
             
             
             
             
            public function rowCount(){
                return $this->stmt->rowCount();
            }
             
             
             
            public function lastInsertId(){
                return $this->dbh->lastInsertId();
            }
             
             
             
             
            public function beginTransaction(){
                    return $this->dbh->beginTransaction();
            }
                 
 
 
                public function endTransaction(){
                    return $this->dbh->commit();
                }
                 
                 
                 
                public function cancelTransaction(){
                    return $this->dbh->rollBack();
                }
                 
                 
                public function debugDumpParams(){
                    return $this->stmt->debugDumpParams();
                }
                 
                 
     
}
?>

مثال نحوه ی فراخوانی در حلقه

function slider()
{
    $class=new content;
    $qr=$class->query('select * from `tbl_slider` order by `id` desc ');
    $row=$class->resultset();
    foreach($row as $key => $value)
    {
        echo'
                <div class="slide">
                    <img src="'.inc.'imgsize.php?w=370&h=280&img='.upload.'  '.$row[$key]['pic'].'"  alt="'.$row[$key]['title'].'"/>
                </div>
        ';
    }
}

مثال بدون حلقه

function slider()
{
    $class=new content;
    $qr=$class->query('select * from `tbl_slider`  ');
    $row=$class->single();
        echo'
                <div class="slide">
                    <img src="'.inc.'imgsize.php?w=370&h=280&img='.upload.'  '.$row['pic'].'"  alt="'.$row['title'].'"/>
                </div>
        ';
}

با استفاده از شرط

function showproduct()
{
    $class=new content;
    $qr=$class->query('select * from `tbl_activity` where  `id`=:id  ');
    $class->bind(':id',$_GET['id']);
    $row=$class->single();
        echo'
                        <h2 class="titleah">'.$row['title'].'</h2>
                                        ';
}

مثال update

$class=new content;
        $class->query("UPDATE  `tbl_admin` SET
        `fullname` = :fullname,
        `user` = :user,
        `pass` = :pass,
        `superadmin` = :superadmin,
        `pic` = :dir,
         where `aid`=:edit ");
         $class->bind(':fullname',$fullname);
         $class->bind(':user',$user);
         $class->bind(':pass',$pass);
         $class->bind(':superadmin',$superadmin);
         $class->bind(':dir',$dir);
         $class->bind(':edit',$edit);
         $class->execute();

مثال insert

$class=new content;
       $class->query("INSERT INTO  `tbl_admin`
       (`aid`  ,`user`,`pass`,`fullname`,`superadmin`  ,`pic`)
VALUES (NULL , ?,?,?,?,?)");
        $class->bind(1,!is_null($user) ? $user :'');
        $class->bind(2,!is_null($pass) ? $pass :'');
        $class->bind(3,!is_null($fullname) ? $fullname :'');
        $class->bind(4,!is_null($superadmin) ? $superadmin :'');
        $class->bind(5,!is_null($dir) ? $dir :'');
        $class->execute();

مثال delete

$class=new content;
    $class->query("delete from `tbl_admin` where `aid`=:aid");
    $class->bind(':aid',$aid);
    $class->execute();

البته شاید این کلاس خیلی درست و کامل نباشه!