SHARE
TWEET

Database.php

a guest Jul 23rd, 2019 111 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. class Database {
  4.  
  5.   private static $INSTANCE = null;
  6.   private $mysqli,
  7.           $HOST = 'localhost',
  8.           $USER = 'root',
  9.           $PASS = '',
  10.           $DBNAME = 'manajemenlab';
  11.  
  12.   /*  
  13.   * method untuk mengisi variable $mysqli ketika class ini dijalankan
  14.   */
  15.   function __construct(){
  16.     $this->mysqli = new mysqli( $this->HOST, $this->USER, $this->PASS, $this->DBNAME);
  17.     if (mysqli_connect_error()){
  18.       die('gagal cuyy' . mysqli_connect_error() . '</br>');
  19.     }
  20.   }
  21.  
  22.   /* Method Intance
  23.   * berfungsi untuk koneksi tidak terjadi double kedatabase
  24.   */
  25.   public static function getInstance(){
  26.     if( !isset(self::$INSTANCE) ) {
  27.       self::$INSTANCE = new Database();
  28.     }
  29.  
  30.     return self::$INSTANCE;
  31.   }
  32.  
  33.   /* Method Insert
  34.   * untuk memasukan kedalam database dengan pemanggilan method ini saja
  35.   * hanya memanggil insert('tabelnya', nilai yang dimasukan kedalam array )
  36.   * contohnya ada di Users.php
  37.   */
  38.   public function insert($table, $fields = array()){
  39.  
  40.     //mengambil kolom dari key array $fields yang dioper dari Users.php
  41.     $column = implode(", ", array_keys($fields));
  42.  
  43.     //menggail nilai dari values array %fields
  44.     $valueArrays = array();
  45.     $i = 0;
  46.     foreach($fields as $key=>$values){
  47.       if( is_int($values) ){
  48.         $valueArrays[$i] = $this->escape($values) ;
  49.       } else {
  50.         $valueArrays[$i] = "'" . $this->escape($values) . "'";
  51.       }
  52.  
  53.       $i++;
  54.     }
  55.  
  56.  
  57.     //menggambungkan nilai array $valuesArrays yang tadi baru di ekstra
  58.     //yang hanya saja menggail nilai Values array tersebut
  59.     $values = implode(", ", $valueArrays);
  60.  
  61.     //query untuk menjalankan insert pada database
  62.     $query = "INSERT INTO $table ($column) VALUES ($values)";
  63.    
  64.     //die($query);
  65.  
  66.     //mengoper nilai ke method run_query
  67.     return $this->run_query($query, 'Masalah Saat Memasukan Data');
  68.   }
  69.  
  70.   public function get_info($table, $column, $value) {
  71.     if ( !is_int($value) )
  72.       $value = "'". $value ."'";
  73.  
  74.     $query = "SELECT * FROM $table WHERE $column = $value";
  75.     $result = $this->mysqli->query($query);
  76.  
  77.     while($row = $result->fetch_assoc() ){
  78.       return $row;
  79.     }
  80.  
  81.   }
  82.  
  83.   public function get_fields($table){
  84.  
  85.     $query  = "SELECT * FROM $table";
  86.     $result = $this->mysqli->query($query);
  87.  
  88.     while($row = $result->fetch_assoc()){
  89.       return $row;
  90.     }
  91.   }
  92.  
  93.   /**
  94.    * method untuk menjalankan query saja dan menampilkan pesan kesalahan dalam development
  95.    */
  96.   public function run_query($query, $msg){
  97.     //pengecekan query sukes atau tidak
  98.     if( $this->mysqli->query($query)) return true;
  99.     //method error itu hanya digunakan untuk develop karna akan memunculkan pesan error
  100.     //untuk programmer agar mudah dipahami
  101.     else die($msg . $this->mysqli->error);
  102.   }
  103.  
  104.   /**
  105.    * method yang berfungsi untuk keamaanan ketika ada inject yang dilakukan dari form
  106.    * mencegah sql injection
  107.    */
  108.   public function escape($name){
  109.     return $this->mysqli->real_escape_string($name);
  110.   }
  111.  
  112.  
  113.  
  114.  
  115. }
  116. ?>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top