Advertisement
Guest User

Database.php

a guest
Jul 23rd, 2019
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  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. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement