MEMBUAT CLASS UNTUK CRUD DATABASE PHP-MYSQL ( Bagian 1 )

Selamat pagi pembaca, kali ini saya akan memberitahu bagaimana membuat class untuk CRUD database di PHP MySQL, kalian pasti ngertikan CRUD database itu apa, kepanjangan dari CRUD adalah Create, Read, Update, Delete. Yang artinya Membuat, Membaca, Mengubah, dan Menghapus Database, serta fungsi - fungsi lainnya yang tidak kalah pentingnya dalam mengolah database.
Oke kita langsung saja mulai

Buatlah file php dengan nama clsDatabase.php
1. Kita buat deklarasikan variabelnya dulu
    <?php
     class Database{
              private $db_host = "localhost";
              private $db_user = "root";
              private $db_pass = "";
              private $db_name = "dbretribusi";  
              private $con = false;
              private $result = array();
              private $myQuery = "";
              private $numResults = "";

       }

      // Fungsi-fungsi class masukkan dibawah sini
        ..........................................................................
        ..........................................................................
    ?>

2. Setelah itu kita buat fungsi untuk menghubungkan / koneksi ke database nya, fungsi dibawah ini untuk menghubungkan koneksi ke database :

    public function connect(){
        if(!$this->con){
            $myconn = @mysql_connect($this->db_host,$this->db_user,$this->db_pass);
            if($myconn){
                $seldb = @mysql_select_db($this->db_name,$myconn);
                if($seldb){
                    $this->con = true;
                    return true; 
                }else{
                    array_push($this->result,mysql_error());
                    return false; 
                } 
            }else{
                array_push($this->result,mysql_error());
                return false;
            } 
        }else{ 
            return true;
        }     
      }


3. Selanjutnya kita buat  fungsi untuk memutuskan koneksi database / disconect database : 
    
    public function disconnect(){
        if($this->con){
            if(@mysql_close()){
                $this->con = false;
                return true;
            }else{
                return false;
            }
        }
     }


4. Setelah kita membuat fungsi koneksi, kita membuat fungsi untuk mengeksekusi Query MySQL

    public function sql($sql){
        $query = @mysql_query($sql);
        $this->myQuery = $sql;
        if($query){
            $this->numResults = mysql_num_rows($query);
            for($i = 0; $i < $this->numResults; $i++){
                $r = mysql_fetch_array($query);
                   $key = array_keys($r);
                   for($x = 0; $x < count($key); $x++){
                       if(!is_int($key[$x])){
                           if(mysql_num_rows($query) >= 1){
                               $this->result[$i][$key[$x]] = $r[$key[$x]];
                        }else{
                            $this->result = null;
                        }
                    }
                }
            }
            return true;
        }else{
            array_push($this->result,mysql_error());
            return false;
        }
     }


5. Kita buat juga SQL Count nya, yang berfungsi untuk mencari jumlah record yang terseleksi dalam database

public function sqlcount($sql){
        $query = @mysql_query($sql);
        $this->myQuery = $sql;
        if($query){
            $r = mysql_fetch_row($query);
            $this->result=$r[0];
            return true;
        }else{
            array_push($this->result,mysql_error());
            return false;
        }
    }


6. Yang tak kalah pentingnya adalah fungsi SELECT, karena fungsi ini akan sering digunakan dalam membuat programnya, oke langsung saja kita buat fungsinya

public function select($table, $rows = '*', $join = null, $where = null, $order = null, $limit = null){
        $q = 'SELECT '.$rows.' FROM '.$table;
        if($join != null){
            $q .= ' JOIN '.$join;
        }
        if($where != null){
            $q .= ' WHERE '.$where;
        }
        if($order != null){
            $q .= ' ORDER BY '.$order;
        }
        if($limit != null){
            $q .= ' LIMIT '.$limit;
        }
        $this->myQuery = $q;
        if($this->tableExists($table)){
            $query = @mysql_query($q);
            if($query){
                $this->numResults = mysql_num_rows($query);
                for($i = 0; $i < $this->numResults; $i++){
                    $r = mysql_fetch_array($query);
                    $key = array_keys($r);
                    for($x = 0; $x < count($key); $x++){
                        if(!is_int($key[$x])){
                            if(mysql_num_rows($query) >= 1){
                                $this->result[$i][$key[$x]] = $r[$key[$x]];
                            }else{
                                $this->result = null;
                            }
                        }
                    }
                }
                return true;
            }else{
                array_push($this->result,mysql_error());
                return false;
            }
          }else{
              return false;
        }
    }


7. Kita lanjutkan membuat fungsi untuk menyimpan atau insert ke database

 public function insert($table,$params=array()){
         if($this->tableExists($table)){
             $sql='INSERT INTO `'.$table.'` (`'.implode('`, `',array_keys($params)).'`) VALUES ("' . implode('", "', $params) . '")';
            $this->myQuery = $sql;
            if($ins = @mysql_query($sql)){
                array_push($this->result,mysql_insert_id());
                return true;
            }else{
                array_push($this->result,mysql_error());
                return false;
            }
        }else{
            return false;
        }
    }


8. Kita buat lagi fungsi untuk mengubah atau update record dalam database

public function update($table,$params=array(),$where){
        if($this->tableExists($table)){
            $args=array();
            foreach($params as $field=>$value){
                $args[]=$field.'="'.$value.'"';
            }
            $sql='UPDATE '.$table.' SET '.implode(',',$args).' WHERE '.$where;
            $this->myQuery = $sql;
            if($query = @mysql_query($sql)){
                array_push($this->result,mysql_affected_rows());
                return true;
            }else{
                array_push($this->result,mysql_error());
                return false;
            }
        }else{
            return false;
        }
    }


9. Kita buat lagi fungsi untuk menghapus record dalam database

 public function delete($table,$where = null){
         if($this->tableExists($table)){
             if($where == null){
                $delete = 'DELETE '.$table;
            }else{
                $delete = 'DELETE FROM '.$table.' WHERE '.$where;
            }
            if($del = @mysql_query($delete)){
                array_push($this->result,mysql_affected_rows());
                $this->myQuery = $delete;
                return true;
            }else{
                array_push($this->result,mysql_error());
                   return false;
            }
        }else{
            return false;
        }
    }


10. Selanjutnya kita buat fungsi untuk menampilkan atau mengembalikan nilai awal hasil data yang digunakan diatas

 public function getResult(){
        $val = $this->result;
        $this->result = array();
        return $val;
    }


11. Kita buat juga fungsi debugging SQLnya

 public function getSql(){
        $val = $this->myQuery;
        $this->myQuery = array();
        return $val;
    }


12. Yang terakhir kita buat fungsi untuk pengecekan seleksi databasenya.

public function numRows(){
        $val = $this->numResults;
        $this->numResults = array();
        return $val;
    }


Oke, saya rasa sudah cukup lengkap fungsi-fungsi dalam mengolah database diatas, class yang kita buat ini nanti kita panggil di form php yang berkaitan dengan fungsi di atas. Untuk pembahasan mengenai bagaimana cara memanggil fungsi tersebut di form php kita lanjutnya pembahasan berikutnya. O iya Jika kalian ingin mencoba skrip sudah sudah jadi bisa diambil disini.

0 Response to "MEMBUAT CLASS UNTUK CRUD DATABASE PHP-MYSQL ( Bagian 1 )"

Post a Comment