host = 'localhost'; // $this->user = 'absensi'; // $this->pass = 'Feed$123$'; // $this->db = 'admin_absensi'; $this->host = HOST; $this->user = USERNAME; $this->pass = PASSWORD; $this->db = DATABASE; // $this->host = '192.168.0.102'; // $this->user = 'root'; // $this->pass = ''; // $this->db = 'absensi'; } private static function cekDatbase(){ $conn = mysqli_connect((new self)->host, (new self)->user, (new self)->pass); if ($conn) { $cekDb = mysqli_select_db($conn, (new self)->db); if ($cekDb) { return "tersedia"; }else{ $queryCreateDb = mysqli_query($conn, "CREATE DATABASE ".(new self)->db); if ($queryCreateDb) { return "dibuat"; } } }else{ return "this not connect"; } } public static function cekd(){ echo "string"; } private static function getDepartment(){ return mysqli_connect('145.223.22.181', (new self)->user, (new self)->pass, (new self)->db, 3307); } public static function cekconnection(){ echo "connection"; } public static function dbquery($qr ='', $type=""){ $getConnection = (new self)->getDepartment(); $query = mysqli_query($getConnection, $qr); $box = []; if($query !== false){ while ($data = mysqli_fetch_object($query) ) { $box[] = $data; } if ($type == "count") { return count($box); }else{ return $box; } }else{ return [ "reponse" => 0, "query" => $qr ]; } } public static function getColumnName($table = '', $row = ''){ $data = (new self)->dbquery(" SELECT COLUMN_NAME as nama_kolom FROM information_schema. COLUMNS WHERE TABLE_SCHEMA = '".(new self)->db."' AND TABLE_NAME = '".$table."' AND ORDINAL_POSITION = ".$row." "); $nama = ""; foreach ($data as $key => $value) { $nama .= $value->nama_kolom; } return $nama; } public static function ArrColumnName($table = ''){ $data = (new self)->dbquery(" SELECT COLUMN_NAME as nama_kolom FROM information_schema. COLUMNS WHERE TABLE_SCHEMA = '".(new self)->db."' AND TABLE_NAME = '".$table."' "); $nama = array(); foreach ($data as $key => $value) { $nama[] = $value->nama_kolom; } return $nama; } public static function cekColumn($table = '', $row = ''){ return (new self)->dbquery(" SELECT COLUMN_NAME as nama_kolom FROM information_schema. COLUMNS WHERE TABLE_SCHEMA = '".(new self)->db."' AND TABLE_NAME = '".$table."' AND ORDINAL_POSITION = ".$row." ", "count"); } public static function cekTable($table = '', $tablestruktur = ''){ $getConnection = (new self)->getDepartment(); $query = mysqli_query($getConnection, "DESCRIBE $table "); if ($query) { $aa = (new self)->ArrColumnName($table); $bb = array_keys($tablestruktur); if (count($aa) > count($bb)) { foreach ($aa as $ay => $ax) { if (in_array($ax, $bb)) { }else{ (new self)->query(" ALTER TABLE ".$table." DROP COLUMN ".$ax."; "); } } }else{ $no = 1; foreach ($tablestruktur as $key => $value) { if ((new self)->cekColumn($table, $no) == 0) { (new self)->query(" ALTER TABLE ".$table." ADD ".$key." ".$value."; "); }else{ if ((new self)->getColumnName($table, $no) != $key) { (new self)->query(" ALTER TABLE ".$table." CHANGE COLUMN ".(new self)->getColumnName($table, $no)." ".$key." ".$value."; "); } } $no++; } } return 'tersedia'; }else{ $mystructure = ""; $no = 0; foreach ($tablestruktur as $key => $value) { if ($no == 0) { $mystructure .= $key.' '.$value; }else{ $mystructure .= ','.$key.' '.$value; } $no++; } $createtable = mysqli_query($getConnection, 'CREATE TABLE '.$table.' ('.$mystructure.') '); if ($createtable) { return 'dibuat'; }else{ return 'gagal'; } } } // query data ke database public static function query($e = '') { $conn = (new self)->getDepartment(); $query = mysqli_query($conn, $e); $response = []; $response['affected_row'] = mysqli_affected_rows($conn); $response['error'] = mysqli_error($conn); // Jika tidak ada error dan affected rows 0, return array kosong if (empty($response['error']) && $response['affected_row'] == 0) { return json_encode([]); } return json_encode($response); } public static function cekruno(){ echo "iam run"; } // ambuil data secara objek public static function query_result_object($e = '') { $conn = (new self)->getDepartment(); // echo $e; // die(); $query = mysqli_query($conn, $e); $box = []; if($query != false){ while ($data = mysqli_fetch_object($query) ) { $box[] = $data; } } return $box; } public static function query_result_object_row($e = '') { $conn = (new self)->getDepartment(); $query = mysqli_query($conn, $e); $box = []; while ($data = mysqli_fetch_object($query) ) { $box[] = $data; } return isset($box[0]) ? $box[0] : null; } // ambil data secara arrray public function query_result_array($e = "") { $conn = (new self)->getDepartment(); $query = mysqli_query($conn, $e); $box = []; while ($data = mysqli_fetch_array($query) ) { $box[] = $data; } return $box; } public function get_table($table='') { return (new self)->query_result_array("SELECT * FROM `".$table."`"); } public static function query_result_assoc($e) { $conn = (new self)->getDepartment(); $query = mysqli_query($conn, $e); $box = []; while ($data = mysqli_fetch_assoc($query) ) { $box[] = $data; } return $box; } // hitung total query data public static function count_query($e) { $conn = (new self)->getDepartment(); $query = mysqli_query($conn, $e); $box = []; while ($data = mysqli_fetch_object($query) ) { $box[] = $data; } return count($box); } // nah ini rumusnya tadi public static function sql_like_table($arr, $search){ $table_row_data = ""; $table_row_data .= "("; foreach ($arr as $key => $value) { if ($key == 0) { $table_row_data .= $value." LIKE '%".$search."%' "; }else{ $table_row_data .= ' OR '.$value." LIKE '%".$search."%' "; } } $table_row_data .= ")"; return $table_row_data; } public static function sql_order_table($arr, $order){ if ($order != "") { $columnName = ""; foreach ($arr as $key => $nilaicolumn) { if ($key == $order[0]["column"]) { $columnName = $nilaicolumn; } } $columnOrder = $_POST["order"][0]["dir"]; $order = 'ORDER BY '.$columnName.' '.$columnOrder.' '; }else{ $order = ' ORDER BY id DESC '; } return $order; } public static function insert($table = "", $data_arr = []){ $conn = (new self)->getDepartment(); $data = "data saya ok"; $keys = array_keys($data_arr); $name_of_query = "INSERT INTO "; $namaTable = $table; $data_keys = " ("; foreach ($keys as $key => $nilai_key) { if ($key == 0) { $data_keys .= $nilai_key; }else{ $data_keys .= ','.$nilai_key; } } $data_keys .= ")"; $data_keys .= " VALUES "; $nilai_data = "("; for ($i=0; $i < count($data_arr); $i++) { if ($i == 0) { $nilai_data .= '"'.$data_arr[$keys[$i]].'"'; }else{ $nilai_data .= ',"'.$data_arr[$keys[$i]].'"'; } } $nilai_data .= ")"; $nilai_query = $name_of_query.$namaTable.$data_keys.$nilai_data; $query = mysqli_query($conn, $nilai_query); return $query; } public static function sql_update_query($table, $data_arr, $where){ $conn = (new self)->getDepartment(); $data = "data saya ok"; $keys = array_keys($data_arr); $keys2 = array_keys($where); $name_of_query = "UPDATE "; $namaTable = $table; $nilai_data = " SET "; for ($i=0; $i < count($data_arr); $i++) { if ($i == 0) { $nilai_data .= $keys[$i].' = "'.$data_arr[$keys[$i]].'"'; }else{ $nilai_data .= ', '.$keys[$i].' = "'.$data_arr[$keys[$i]].'"'; } } $argument = " WHERE "; for ($y=0; $y < count($where); $y++) { if ($y == 0) { $argument .= $keys2[$y]." = '".$where[$keys2[$y]]."' "; }else{ $argument .= " AND ".$keys2[$y]." = '".$where[$keys2[$y]]."' "; } } $nilai_query = $name_of_query.$namaTable.$nilai_data.$argument; $query = mysqli_query($conn, $nilai_query); return $query; } public static function sql_delete_query($table, $where){ $conn = (new self)->getDepartment(); $keys2 = array_keys($where); $argument = " WHERE "; for ($y=0; $y < count($where); $y++) { if ($y == 0) { $argument .= $keys2[$y]." = '".$where[$keys2[$y]]."' "; }else{ $argument .= " AND ".$keys2[$y]." = '".$where[$keys2[$y]]."' "; } } $delete_query = "DELETE FROM ".$table.$argument; $query = mysqli_query($conn, $delete_query); return $query; } public static function multipleQuery($queries = []) { $conn = (new self)->getDepartment(); $results = []; $success = true; // Start transaction mysqli_begin_transaction($conn); try { // Check if input is string (multiple queries with semicolons) if (is_string($queries)) { // Enable multi_query if (mysqli_multi_query($conn, $queries)) { do { // Store first result set if ($result = mysqli_store_result($conn)) { $results[] = [ 'affected_rows' => mysqli_affected_rows($conn), 'error' => mysqli_error($conn), 'query' => $queries ]; mysqli_free_result($result); } } while (mysqli_next_result($conn)); } } else { // Process array of queries foreach ($queries as $query) { $result = mysqli_query($conn, $query); if ($result === false) { throw new \Exception(mysqli_error($conn)); } $results[] = [ 'affected_rows' => mysqli_affected_rows($conn), 'error' => mysqli_error($conn), 'query' => $query ]; } } // If all queries succeed, commit the transaction mysqli_commit($conn); return [ 'success' => true, 'results' => $results ]; } catch (\Exception $e) { // If any query fails, rollback the transaction mysqli_rollback($conn); return [ 'success' => false, 'error' => $e->getMessage(), 'results' => $results ]; } } }