InformasiTutorialTutorial PHP

Tutorial Membuat Auto Installer File SQL MySQL dengan PHP

Afid Arifin – Halo teman-teman selamat pagi dan balik lagi bersama saya. Kali ini saya akan berbagi tutorial mengenai sql atau lebih tepatnya database mysql.

Intro

Tutorial kali ini adalah tentang bagaimana caranya untuk membuat file auto installer file sql mysql dengan hanya menggunakan php.

Jadi, ketika Anda menggunakan tutorial ini maka Anda tidak perlu lagi mengimpor file database mysql Anda secara manual melalui phpmyadmin seperti biasanya.

Anda hanya memanggil file installer /install.php maka semua file database mysql Anda akan otomatis terinstall di phpmyadmin. Ini akan sedikit menghemat waktu Anda tentunya.

Menarik Untuk Anda

Langkah-langkah Membuat Auto Installer SQL

Teknik ini juga saya pakai pada script point of sale saya. Bagi kalian yang sudah mendownload maka seharusnya Anda tidak bingung lagi dengan tutorial ini.

Nah, baiklah langsung saja kita mulai persiapan awal pembuatannya berikut ini.

Langkah Pertama Tutorial

Pada langkah pertama ini, silahkan buat file sql dengan nama cashierpress.sql lalu copy pastekan sql berikut ke dalam file sql yang telah dibuat.

-- phpMyAdmin SQL Dump
-- version 5.0.1
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Waktu pembuatan: 05 Jun 2020 pada 08.16
-- Versi server: 5.7.24
-- Versi PHP: 7.2.19

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `cashierpress`
--

-- --------------------------------------------------------

--
-- Struktur dari tabel `barang`
--

CREATE TABLE `barang` (
  `id_barang` int(10) NOT NULL,
  `id_kategori` varchar(5) NOT NULL,
  `nama_barang` varchar(30) NOT NULL,
  `kode_barang` varchar(10) NOT NULL,
  `harga_barang` int(10) NOT NULL,
  `stok_barang` int(10) NOT NULL,
  `total_terjual` int(10) NOT NULL,
  `penghasilan` int(20) NOT NULL,
  `time_session` int(10) NOT NULL,
  `time` int(10) NOT NULL,
  `status` enum('Yes','No') NOT NULL DEFAULT 'Yes'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Struktur dari tabel `kategori`
--

CREATE TABLE `kategori` (
  `id_kategori` int(10) NOT NULL,
  `nama_kategori` varchar(30) NOT NULL,
  `status` enum('Yes','No') NOT NULL DEFAULT 'Yes',
  `time` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `kategori`
--

INSERT INTO `kategori` (`id_kategori`, `nama_kategori`, `status`, `time`) VALUES
(1, 'Tak Berkategori', 'Yes', 1590093479);

-- --------------------------------------------------------

--
-- Struktur dari tabel `keranjang`
--

CREATE TABLE `keranjang` (
  `id_keranjang` int(10) NOT NULL,
  `id_barang` int(10) NOT NULL,
  `jumlah_barang` int(10) NOT NULL,
  `harga_barang` int(10) NOT NULL,
  `session` int(10) NOT NULL,
  `time` int(10) NOT NULL,
  `status` enum('Yes','No') NOT NULL DEFAULT 'Yes'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Struktur dari tabel `order_details`
--

CREATE TABLE `order_details` (
  `id_order` int(10) NOT NULL,
  `id_barang` int(10) NOT NULL,
  `kode_pesanan` varchar(30) NOT NULL,
  `jumlah` int(10) NOT NULL,
  `print` int(10) NOT NULL,
  `time` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Struktur dari tabel `users`
--

CREATE TABLE `users` (
  `id` int(10) NOT NULL,
  `email` varchar(30) NOT NULL,
  `password` varchar(255) NOT NULL,
  `nama` varchar(30) NOT NULL,
  `role` enum('Master','Cashier','User') NOT NULL DEFAULT 'User',
  `time` int(10) NOT NULL,
  `token` int(10) NOT NULL,
  `status` enum('Yes','No') NOT NULL DEFAULT 'Yes'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `users`
--

INSERT INTO `users` (`id`, `email`, `password`, `nama`, `role`, `time`, `token`, `status`) VALUES
(1, '[email protected]', '$2y$10$6ues0sNLsiDRqYr6EMAMn.SS1lG5Vy/GvtxW7BiO91fe8M8dYOly6', 'Afid Arifin', 'Master', 1569758842, 121212, 'Yes');

--
-- Indexes for dumped tables
--

--
-- Indeks untuk tabel `barang`
--
ALTER TABLE `barang`
  ADD PRIMARY KEY (`id_barang`),
  ADD KEY `jenis_barang` (`kode_barang`),
  ADD KEY `id_kategori` (`id_kategori`);

--
-- Indeks untuk tabel `kategori`
--
ALTER TABLE `kategori`
  ADD PRIMARY KEY (`id_kategori`);

--
-- Indeks untuk tabel `keranjang`
--
ALTER TABLE `keranjang`
  ADD PRIMARY KEY (`id_keranjang`),
  ADD KEY `id_barang` (`id_barang`);

--
-- Indeks untuk tabel `order_details`
--
ALTER TABLE `order_details`
  ADD PRIMARY KEY (`id_order`),
  ADD KEY `id_barang` (`id_barang`);

--
-- Indeks untuk tabel `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT untuk tabel yang dibuang
--

--
-- AUTO_INCREMENT untuk tabel `barang`
--
ALTER TABLE `barang`
  MODIFY `id_barang` int(10) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `kategori`
--
ALTER TABLE `kategori`
  MODIFY `id_kategori` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT untuk tabel `keranjang`
--
ALTER TABLE `keranjang`
  MODIFY `id_keranjang` int(10) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `order_details`
--
ALTER TABLE `order_details`
  MODIFY `id_order` int(10) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `users`
--
ALTER TABLE `users`
  MODIFY `id` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- Ketidakleluasaan untuk tabel pelimpahan (Dumped Tables)
--

--
-- Ketidakleluasaan untuk tabel `keranjang`
--
ALTER TABLE `keranjang`
  ADD CONSTRAINT `keranjang_ibfk_1` FOREIGN KEY (`id_barang`) REFERENCES `barang` (`id_barang`);
COMMIT;

/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;

Atau jika Anda telah memiliki file sql hasil ekspor sebelumnya maka Anda dapat melewati langkah ini.

Langkah Kedua Tutorial

Untuk langkah kedua ini silahkan buat file baru dengan nama /connect.php yang dimana file ini berguna untuk mengkoneksikan ke database untuk sementara waktu hingga proses install selesai.

Copy pastekan kode php berikut ke dalam file tersebut.

<?php
/**
 * ========== About ==========
 * Author     : Afid Arifin
 * Name       : CashierPress
 * Version    : v1.0
 * Created On : 30/04/2020
 */

/**
 * ========== WARNING BEFORE USING ==========
 * About            : see /documents/about.txt
 * Contact          : see /documents/contact.txt
 * Disclaimer       : see /documents/disclaimer.txt
 * Privacy Policy   : see/documents/privacy-policy.txt
 * License Software : see /documents/license.txt
 */

// To Debugging, You can change the number zero to number one to display the message
ini_set('display_errors', 0);
ob_start();
session_start();

// Check PHP version
if(version_compare(phpversion(), '7', '<=')) {
  die('<b>Warning:</b> Your PHP version '.phpversion().' is deprecated. Please use PHP version or up!');
}

// Configuration database
$MySQL_Host = 'localhost';
$MySQL_User = 'root';
$MySQL_Pass = '';
$MySQL_Name = 'cashierpress';

// Connection To Database
$cp = new mysqli($MySQL_Host, $MySQL_User, $MySQL_Pass, $MySQL_Name);
if($cp->connect_errno) {
  die('<b>Error:</b> Connection to database is failed!');
}

// Global URL Or Base Url
// If You Using SSL, Please change http:// to https:// format protocol
function base_url() {
  return 'http://'.$_SERVER['HTTP_HOST'].'';
}

// Set Charset And Names
$cp->query('SET CHARSET UTF8');
$cp->Query('SET NAMES UTF8');
?>

Langkah ketiga Tutorial

Kemudian pada langkah ketiga ini kita buat file baru dengan nama file php /install.php dan kemudian copy pastekan kode php berikut ke dalam file tersebut.

<?php
/**
 * ========== About ==========
 * Author     : Afid Arifin
 * Name       : CashierPress
 * Version    : v1.0
 * Created On : 30/04/2020
 */

/**
 * ========== WARNING BEFORE USING ==========
 * About            : see /documents/about.txt
 * Contact          : see /documents/contact.txt
 * Disclaimer       : see /documents/disclaimer.txt
 * Privacy Policy   : see/documents/privacy-policy.txt
 * License Software : see /documents/license.txt
 */

// To Debugging, You can change the number zero to number one to display the message
ini_set('display_errors', 0);

$page = isset($_GET['act']) ? trim($_GET['act']) : '';
switch($page) {

  case 'finish':

    require_once 'includes/connect.php';

    // Konfigurasi impor file sql
    $sql = 'cashierpress.sql';
    if(is_file($sql)) {

      // Cek baris sementara
      $templine = '';

      // Cek setiap baris yang ada pada file sql
      $lines = file($sql);
      foreach($lines as $line) {
        if(substr($line, 0, 2) == '--' || $line == '') continue;

        // Cek baris sementara
        $templine .= $line;
        if(substr(trim($line), -1, 1) == ';') {

          // Lakukan proses query
          $do = $cp->query($templine);
          
          // Cek baris sementara
          $templine = '';
        }
      }

      if($do) {

        // Berhasil instalasi
        echo '<b>Bagus!</b> aplikasi siap Anda gunakan. Silahkan Anda <a href="/login/?" target="_blank">login</a> untuk memulai.<br/>';
        echo '<b>Data Login:</b>';
        echo '<ul>
          <li><b>Email:</b> [email protected]</li>
          <li><b>Password:</b> 12345678</li>
        </ul>';
        unlink('install.php');
      } else {

        // Gagal instalasi
        echo '<b>Oops!</b> instalasi gagal. Silahkan <a href="/install.php?">ulangi kembali</a>.';
      }
    }
  break;

  default:

    // Configuration database
    $MySQL_Host = 'localhost';
    $MySQL_User = 'root';
    $MySQL_Pass = '';
    
    // Connection To Database
    $cp = new mysqli($MySQL_Host, $MySQL_User, $MySQL_Pass);
    if($cp->connect_errno) {
      die('<b>Error:</b> Connection to database is failed!');
    }

    // Jika database belum ada maka sistem akan menggenerate database dengan nama cashierpress.
    // Sistem juga akan mengimport berkas cashierpress.sql yang telah terlampir.
    $create_db = $cp->query("CREATE DATABASE IF NOT EXISTS cashierpress");
    if($create_db) {

      // Jika proses pembuatan database berhasil
      echo '<script>window.location = "/install.php?act=finish";</script>';
    } else {

      // Jika terdapat kesalahan system
      echo 'Oops! terjadi masalah tidak dikenali.';
    }
  break;
}
?>

Penjelasan

Masih bingung? tenang, silahkan pahami kembali penjelasan saya dari tutorial membuat auto installer file sql mysql dengan php ini.

Penjelasan Langkah Pertama Tutorial

Pada langkah pertama merupakan contoh file sql atau query sql yang saya gunanakan pada tutorial ini. Anda bebas menggunakn file sql Anda yang akan digunakan untuk auto installernya.

Penjelasan Langkah Kedua Tutorial

Baca Juga

Cara Mengirim Email Disertai Lampiran dengan PHP Native

Pada langkah kedua kita telah membuat file koneksi antara php dan mysql. Ini hanya sementara hingga proses install berhasil diproses.

Penjelasan Langkah Ketiga Tutorial

Pada langkah ketiga ini merupakan inti dari artikel kali ini. Untuk bagian yang bernama cashierpress silahkan Anda ganti dengan nama file sql yang Anda gunakan.

Agar proses install berjalan dengan lancar, maka pastikan antara letak file sql dengan file install.php Anda berada dalam satu folder.

Kesimpulan

Membuat auto installer sql mysql dengan php sederhana ini akan sedikit menghemat waktu kita. Karena, proses impor file sql tidak perlu melalui phpmyadmin.

Trik ini juga saya pakai dalam beberapa project yang saya buat termasuk pada aplikasi point of sale yang telah saya share kemarin melalui web ini.

Sekian dari saya dan semoga bermanfaat…

Tags
Show More

Related Articles

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Back to top button
Close
Close