Tutorial PHP : Cara Membuat Query Builder Class CRUD Sederhana dengan PHP

Tutorial PHP : Cara Membuat Query Builder Class CRUD Sederhana dengan PHP
04 Januari 2020 11:26 Fauzan (Codekop) 2,912x
PHP

Halo, kembali lagi di codekop.com, pada kali ini saya mau share cara membuat query builder CRUD sederhana dengan PHP, Query Builder ini berfungsi untuk membantu untuk mempermudah proses crud yang dilakukan ke database, karena kita tidak usah susah payah lagi membuat query sql seperti INSERT INTO, UPDATE TABLE SET, DELETE, SELECT *FROM dan sebagainya, cukup mengetahui nama tabel dan nama kolom yang akan di execute.

 

btw saya mengshare tutorial ini dikarenakan dapat inspirasi dari framework-framework seperti CodeIgniter atau Laravel, bagaimana si framework dapat mengexecute data dengan hanya memanggil nama table, kolom dan isi tanpa harus capek-capek menulis query sql lagi, terlebih lagi ini hanya sekedar pembelajaran dan pengetahuan untuk mempermudah dan mempercepat CRUD pada website.

 

langsung saja masuk tutorial :

Langkah pertama membuat 3 file php sebagai percobaan : yaitu index.php, crud.php, dan koneksi.php

Seperti biasa kita membuat file koneksi.php  untuk menghubungan php dengan database

<?php
/**
 * Berikut koneksi untuk menguhubungkan php dengan database
 * 
 * 
 */

    $host = 'localhost'; // host default 'localhost' atau 127.0.0.1
    $user = 'root'; // user default 'root'
    $pass = '';   // password server anda, jika menggunakan xampp default kosong
    $dbname = ''; // nama database anda

    try{
        $koneksi = new PDO('mysql:host='.$host.';dbname='.$dbname.';', $user, $pass);
    }catch (PDOException $e) {
        return 'Koneksi Gagal : ' . $e->getMessage();
    }

?>

 

lalu langkah selanjutnya anda membuat crud.php yaitu berisi fungsi-fungsi untuk query builder nya, setiap function sudah di beri komentar untuk mengetahui fungsi-fungsi yang ada :

 

<?php 
class Crud {

    protected $db;
    function __construct($db){
        $this->db = $db;
    }

    // merupakan fungsi untuk melihat tabel dari database ( select *from )
    function select_from($tabel)
    {
        return $this->db->query("SELECT * FROM $tabel");
    }

    // merupakan fungsi untuk melihat data table dari database berdasarkan id
    function select_where($tabel,$where,$id)
    {
        $row = $this->db->prepare("SELECT * FROM $tabel WHERE $where = ?");
        $row->execute(array($id));
        return $row;
    }

    // merupakan fungsi untuk tambah data
    function insert($tabel,$paramsArr)
    {
        $key = array_keys($paramsArr);
        $val = array_values($paramsArr);

        $query = "INSERT INTO $tabel (" . implode(', ', $key) . ") "
            . "VALUES ('" . implode("', '", $val) . "')";

        $row = $this->db->prepare($query);
        return $row ->execute();
    }

    // merupakan fungsi edit data
    function update($tabel,$data,$where,$id)
    {
        $setPart = array();
        foreach ($data as $key => $value)
        {
            $setPart[] = $key."=:".$key;
        }
        $sql = "UPDATE $tabel SET ".implode(', ', $setPart)." WHERE $where = :id";
        $row = $this->db->prepare($sql);
        //Bind our values.
        $row ->bindValue(':id',$id); // where
        foreach($data as $param => $val)
        {
            $row ->bindValue($param, $val);
        }
        return $row ->execute();
    }
    
    // merupakan fungsi untuk hapus data
    function delete($tabel,$where,$id)
    {
        $sql = "DELETE FROM $tabel WHERE $where = ?";
        $row = $this->db->prepare($sql);
        return $row ->execute(array($id));
    }


}

?>

 

Nah setelah membuat kedua file diatas kita uji coba testing dengan koneksi dan query builder yang kita buat pada index.php :

langkah pada file index.php adalah cara memanggil kedua file tersebut :

<?php
/**
 * File Index.php sebagai testing query builder crud yang sudah di buat 
 * 
 * 
 */
    // memanggil file koneksi.php dan crud.php
    require 'koneksi.php';
    require 'crud.php';

    // memanggil class crud pada file crud.php 
    $crud = new Crud($koneksi);

 

lalu cara menggunakan query builder tersebut berikut cara pakainya :

  1. Script cara menampilkan isi data pada table database :

    query sql nya :

    SELECT * FROM tbl_user

     

    Cara execute pada query builder php :

    // cara select * from tabel 
    $results = $crud->select_from('tbl_user')->fetchAll();
    
    foreach($results as $row)
    {
        echo $row['username'];
        echo $row['name'];
        echo $row['email'];
    }

     

  2. Script cara menampilkan isi data pada database berdasarkan where id = ? : 

    query sql nya :

    SELECT * FROM tbl_user WHERE username = 'fauzan';


    Cara execute pada query builder php :

    // select * from tabel where username = ?
    $result = $crud->select_where('tbl_user','username','fauzan')->fetch();
    
    echo $result['username'];

     

  3. Script cara insert record pada tabel :

    query sql nya :

    INSERT INTO tbl_user (username, name, email, website) VALUES ('fauzan', 'Fauzan Falah', 'fauzan1892@codekop.com', 'www.codekop.com');


    Cara execute pada query builder php :

    // cara tambah record tbl_user
    $data = array(
        // 'nama kolom tabel' => 'isi kolom yang diisi'
        'username' => 'fauzan',
        'name'     => 'Fauzan Falah',
        'email'    => 'fauzan1892@codekop.com',
        'website'  => 'www.codekop.com'
    );
    
    $crud->insert('tbl_user',$data);

     

  4. Script cara update record pada tabel :

    query sql nya :

    UPDATE tbl_user SET name='Falah Fauzan', email = 'fauzancodekop@gmail.com' WHERE id_user = '1';


    Cara execute pada query builder php :

    // cara update record tbl_user
    $data = array(
        // 'nama kolom tabel' => 'isi kolom yang diisi'
        'name'     => 'Falah Fauzan',
        'email'    => 'fauzancodekop@gmail.com',
    );
    
    // update('nama tabel', $data, 'where id_user', 'id user');
    $crud->update('tbl_user',$data,'id_user','1');

     

  5. Script Cara Delete Record Tabel :

    query sql nya :

    DELETE FROM tbl_user WHERE id_user = '1';


    Cara execute pada query builder php :

    // cara delete / hapus record table user 
    
    $crud->delete('tbl_user','id_user','1');

     

  6. Tambahan : cara menghitung jumlah record tabel dengan php  :

    // cara row count isi record table
    $counts = $crud->select_from('tbl_user')->rowCount();
    
    echo $counts;
    
    // cara row count isi record table berdasarkan id
    
    $count = $crud->select_where('tbl_user','username','fauzan')->rowCount();
    
    echo $count;

 

Oke itu cukup demikian tutorial kali ini semoga bermanfaat mohon maaf bila ada salah, kata terima kasih telah berkunjung..