Manipulasi database MySQL dengan PHP


Hampir tidak ada aplikasi web zaman sekarang ini yang  tidak memerlukan database untuk menyimpan data, baik data artikel, data produk, data penjualan, data user, dan lain-lain. Oleh karena itu diperlukan fungsi untuk mengakses dan memanipulasi data yang terdapat di database. PHP memiliki fungsi yang lebih dari cukup untuk memanipulasi data yang ada di dalam database, seperti yang akan dbahas pada tutorial kali ini.

Membuat Koneksi

Sebelum kita bisa memanipulasi (menambah, mengubah, menghapus, dll) data pada database MySQL, kita harus membuat koneksi terlebih dahulu dari PHP ke Server MySQL lalu memilih database yang akan dimanipulasi. PHP telah menyediakan fungsi untuk membuat koneksi dan memilih database, yaitu: mysql_connect dan mysql_select_db.

Contoh:

<?php
mysql_connect('localhost','root','');
mysql_select_db('nama_database');

/*'localhost' adalah nama host,
'root' adalah nama user,
dan '' ( kosong ) adalah password MySQL */
?>

Melakukan Query

Setelah terhubung ke database, baru kita bisa melakukan query (INSERT, UPDATE, DELETE, CREATE, ALTER, dll) ke MySQL. Untuk melakukan query ke MySQL, perintah yang digunakan adalah mysql_query(‘perintah_sql’). Pada modul ini diasumsikan Anda telah mengetahui perintah-perintah dasar SQL.

Contoh:

<?php
mysql_connect('localhost','root','');
mysql_select_db('nama_database');
mysql_query('SELECT * FROM nama_tabel');
?>

Mengambil Data

Untuk mengambil data hasil dari query SELECT, bisa menggunakan perintah mysql_fetch_row, mysql_fetch_assoc, ataupun mysql_fetch_array. Perbedaannya adalah:

Fungsi/Perintah Hasil
mysql_fetch_row hasilnya berupa array biasa
mysql_fetch_assoc hasilnya berupa array associative
mysql_fetch_array hasilnya berupa array biasa dan/atau array asosiatif

Contoh:

<?php
// mysql_fetch_row
mysql_connect('localhost','root','');
mysql_select_db('nama_database');
$hasil = mysql_query('SELECT nama_field_1,
nama_field_2,nama_field_3 FROM nama_tabel');
while ($deretan = mysql_fetch_row($hasil))
{
  echo $deretan[0]; //akan menampilkan isi field pertama
  echo $deretan[1]; //akan menampilkan isi field kedua
  echo $deretan[2]; //akan menampilkan isi field ketiga, dst
}

// mysql_fetch_assoc
mysql_connect('localhost','root','');
mysql_select_db('nama_database');
$hasil = mysql_query('SELECT * FROM nama_tabel');
while ($deretan = mysql_fetch_assoc($hasil))
{
  echo $deretan['nama_field_1']; //akan menampilkan isi field pertama
  echo $deretan['nama_field_2']; //akan menampilkan isi field kedua
  echo $deretan['nama_field_3']; //akan menampilkan isi field ketiga
}
?>

Pada contoh diatas, dengan mysql _fetch_row hasilnya berupa array $deretan yang mempunyai indeks angka ($deretan[0],$deretan[1]). Dengan mysql_fetch_assoc, hasilnya berupa array $deretan yang mempunyai indeks asosiatif yang berupa nama field dari tabel.

Menambah data

Untuk menambah data ke tabel, query yang digunakan adalah INSERT INTO.

Contoh:

<?php
mysql_connect('localhost','root','');
mysql_select_db('nama_database');
mysql_query("INSER INTO nama_tabel(field1,field2,field3)
VALUES ('Agus',123,'Pria')");
?>

Menghapus data

Untuk menghapus data perintah sql yang digunakan adalah DELETE FROM

Contoh:

<?php
mysql_connect('localhost','root','');
mysql_select_db('nama_database');
mysql_query("DELETE FROM nama_tabel WHERE nama='Agus'");
?>

Perintah diatas akan menghapus semua data yang nama nya ‘Agus’ dari tabel ‘nama_tabel’.

Mengubah data

Untuk mengubah data perintah sql yang digunakan adalah UPDATE

Contoh:

<?php
mysql_connect('localhost','root','');
mysql_select_db('nama_database');
mysql_query("UPDATE nama_tabel SET nama='Agus' WHERE nama= 'Aguk' ");
?>

Perintah diatas akan mengubah semua data yang namanya ‘Aguk’ menjadi ‘Agus’

Latihan/Praktikum

Pada latihan/praktikum kali ini akan dipraktekan bagaimana PHP bisa memanipulasi data (menambah data, menghapus, mengubah, dll) pada database MySQL. Sebelum memanipulasi data, kita harus membuat database dan tabel yang diperlukan, yaitu database blogku dan tabel tulisan dengan kamus data sbb:

Field Jenis NULL/Kosong Default Lain-lain
id_tulisan int(10) Tidak PRIMARY KEY, auto_increment
judul_tulisan varchar(100) Tidak
isi_tulisan text Tidak
tanggal_tulisan datetime Tidak

Kamus data tabel tulisan

Tabel tersebut adalah tabel untuk menyimpan data tulisan yang akan dimanipulasi oleh PHP. Lalu setelah itu kita akan membuat file-file PHP yang akan memanipulasi data tersebut. Tetapi sebaiknya dibuat folder terlebih dahulu khusus untuk modul ini, yaitu folder ‘blogku’ pada webserver Anda (wamp\www\ atau xampp\htdocs\) sehingga untuk mengakses file-file tersebut digunakan perintah http://localhost/blogku/namafile.php pada browser.

Lalu buat file-file di bawah ini dan simpan pada folder ‘blogku’ tersebut:

1. header.html

<!-- header.html -->
<html>
<head>
<title>Blogku</title>
<style type="text/css">
<!--
  h1 {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 36px;
    color: #003399;
  }
  h2 {
    font-family:Georgia, "Times New Roman", Times, serif;
    font-size:24px;
  }
  body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
  }
  -->
</style>
</head>
<body>
<h1>Blogku</h1>
<p>
<a href="index.php">Beranda</a>  |
<a href="lihat.php">Lihat Tulisanku</a> |
<a href="tambah.php">Tambah Tulisan </a> |
<a href="kosongkan.php">Kosongkan</a>
</p>

2. footer.html

<!-- footer.html -->
<hr />
&copy; 2009 Triswansyah Yuliano. Hak cipta dilindungi Undang-undang.
</body>
</html>

3. index.php (file ini adalah file utama yang akan dipanggil oleh browser)

<?php
// index.php
include 'header.html';
?>
<h2>Halaman Depan</h2>
Selamat datang di blogku. Blogku ini adalah catatan harianku...
Isi nya macem-macem, mulai dari curhatku sampe catatan-catatan lainnya.
Catatan kuliah juga aku tulis di sini. Termasuk catetan utang-utangku...
Silakan baca dan beri komentar ya...
<?php
include 'footer.html';
?>

4. Silakan buka browser lalu ketik http://localhost/blogku/index.php File index.php akan menyertakan file header.html dan footer.html untuk ditampilkan pada file index.php dengan menggunakan perintah include.

Lalu buat file-file di bawah ini yang berfungsi untuk memanipulasi data. File-file tersebut yaitu sbb:

5. database.php (file yang berisi fungsi koneksi database)

<?php
mysql_connect('localhost','root','');
mysql_select_db('blogku');
?>

6. lihat.php (file untuk melihat data dari tabel tulisan)

<?php
include 'header.html';
include 'database.php';
echo '<h2>Tulisanku</h2>';
$hasil = mysql_query('SELECT * FROM tulisan');
if (mysql_num_rows($hasil) == 0) {echo 'Tulisan masih kosong';}
while ($baris = mysql_fetch_assoc($hasil))
{
echo 'ID: ' . $baris['id_tulisan'] . '<br />';
echo '<b>Judul: ' . $baris['judul_tulisan'] . '</b><br />';
echo 'Tanggal: ' . $baris['tanggal_tulisan'] . '<br />';
echo 'Isi: ' . $baris['isi_tulisan'] . '<br />';
echo '<a href="hapus.php?id=' . $baris['id_tulisan'] . '">HAPUS</a> |
<a href="ubah.php?id=' . $baris['id_tulisan'] . '">UBAH</a>';
echo '<hr />';
}
include 'footer.html';
?>

7. tambah.php (file untuk memasukan data baru)

<?php
include 'header.html';
?>
<h2>Tambah Tulisan di Blogku</h2>
<form method="post" action="proses-tambah.php">
<p>
<input name="id" type="text" readonly="true" value="auto_increment"/>
ID (Dikunci)</p>
<p>
<input type="text" name="tanggal"
value="<?php echo date('Y-m-d h:i:s');?>" readonly="true">
Tanggal (Dikunci)</p>
<p>
<input type="text" name="judul" />
Judul</p>
<p>Isi:<br />
<textarea name="isi" cols="80" rows="10"></textarea>
</p>
<p>
<input type="submit" name="submit" value="Simpan">
<input name="reset" type="reset" id="Reset" value="Bersihkan">
</p>
</form>
<?php
include 'footer.html';
?>

8. proses-tambah.php (file untuk memproses penambahan data)

<?php
include 'header.html';
include 'database.php';
$hasil = mysql_query("INSERT INTO tulisan
(
tanggal_tulisan,
judul_tulisan,
isi_tulisan)
VALUES
('". date('Y-m-d h:i:s') ."',
'". $_POST['judul'] ."',
'". $_POST['isi'] ."'
)
");
echo $hasil? 'Data tersimpan':'Data gagal disimpan: '.mysql_error();
include 'footer.html';
?>

9. ubah.php (file untuk mengubah data)

<?php
include 'header.html';
include 'database.php';
$hasil = mysql_query("SELECT *
FROM tulisan
WHERE id_tulisan = '" . $_GET['id'] . "'");
$baris = mysql_fetch_assoc($hasil);
?>
<h2>Ubah Tulisanku</h2>
<form method="post" action="proses-ubah.php">
<p>
<input type="text" name="id" readonly="true"
value="<?php echo $baris['id_tulisan']; ?>"/>
ID (Dikunci)</p>
<p>
<input type="text" name="tanggal"
value="<?php echo $baris['tanggal_tulisan'];?>" readonly="true">
Tanggal (Dikunci)</p>
<p>
<input type="text" name="judul"
value="<?php echo $baris['judul_tulisan'];?>"/>
Judul</p>
<p>Isi:<br />
<textarea name="isi" cols="80" rows="10"><?php echo $baris['isi_tulisan']; ?></textarea>
</p>
<p>
<input type="submit" name="submit" value="Simpan">
</p>
</form>
<?php
include 'footer.html';
?>

10. proses-ubah.php (file untuk memproses pengubahan data)

<?php
include 'header.html';
include 'database.php';
$hasil = mysql_query("UPDATE tulisan
SET judul_tulisan = '". $_POST['judul'] ."',
isi_tulisan = '". $_POST['isi'] ."'
WHERE id_tulisan = '". $_POST['id'] ."'");
echo $hasil? 'Data tersimpan':'Data gagal disimpan: ' . mysql_error();
include 'footer.html';
?>

11. hapus.php (file untuk memproses penghapusan data)

<?php
include 'header.html';
include 'database.php';
$hasil = mysql_query("DELETE FROM tulisan
WHERE id_tulisan = '" . $_GET['id'] . "'");
echo $hasil? 'Data dihapus': 'Data gagal dihapus: ' . mysql_error();
include 'footer.html';
?>

12. kosongkan.php (file untuk mengosongkan semua data)

<?php
include 'header.html';
include 'database.php';
$hasil = mysql_query('TRUNCATE tulisan');
echo $hasil?'Tabel dikosongkan':'Tabel gagal dikosongkan'.mysql_error();
include 'footer.html';
?>

Setelah semua file tersebut disimpan pada folder blogku, lalu buka browser dan ketik http://localhost/blogku/index.php

Halaman Index Blogku

Halaman Index Blogku

About these ads

, ,

  1. #1 by rany on 30 April 2009 - 11:24

    wah….makasih tutorialnya….
    mas-mas….
    mo nanya tentang store procedure mysql dong….
    dari mulai langkah yang pertama mpe kodingan insert, update dll….maap masih tahap penjajakan ma store procedure

    • #2 by triswan on 2 Mei 2009 - 15:38

      contoh nya:

      CREATE PROCEDURE procedure1 /* name */
      (IN parameter1 INTEGER) /* parameters */
      BEGIN /* start of block */
      DECLARE variable1 CHAR(10); /* variables */
      IF parameter1 = 17 THEN /* start of IF */
      SET variable1 = ‘birds’; /* assignment */
      ELSE
      SET variable1 = ‘beasts’; /* assignment */
      END IF; /* end of IF */
      INSERT INTO table1 VALUES (variable1); /* statement */
      END /* end of block */

      untuk lebih lengkapnya, klik: http://dev.mysql.com/tech-resources/articles/mysql-storedprocedures.html

  2. #3 by Gadis Bali on 21 Juni 2009 - 16:10

    masih bingung bro tks nanti dicoba lagi

  3. #4 by Iyan on 24 Oktober 2009 - 11:23

    wah mksh bngts atas infonya,,,
    smoga ilmunya trus bertambah y….
    lams knal z y….
    I Love PHP .,,

  4. #5 by ffiirrmmaann on 11 Februari 2010 - 12:14

    thank’s tutor nya….

  5. #6 by oby on 24 Juni 2010 - 20:00

    thx,,, infonya sangat bermanfaat gan

    • #7 by triswan on 13 Agustus 2010 - 09:21

      sim sim, mudah2n bermanfaat

  6. #8 by izme on 29 Juli 2010 - 11:09

    Thanks tutornya…

    Btw, mw nanya dunx….

    Klo qta mw insert n update di dlm 1 function kra2 codingnya kyak gmna ya??

    thx b4:)

    • #9 by triswan on 13 Agustus 2010 - 10:51

      pake parameter saja yang bisa diisi secara optional.
      contoh:

      function save($nama, $email, $umur, $id = null)
      {
      // jika parameter $id tidak diisi, then lakukan insert
      if ( $id == null ) {
      // code insert di sini
      }
      else // tetapi jika parameter $id diisi, then lakukan update
      {
      // code update di sini
      }
      }

      ini cuma illustrasi, untested…..

  7. #10 by manuck on 9 November 2010 - 09:52

    wah makasih banyak kk, sudah share ini jadi tambah pengetahuan dech

  8. #11 by adenghudaya on 8 Agustus 2011 - 18:40

    thank bgt gan

    • #12 by triswan on 15 September 2011 - 14:53

      sama sama juga gan

  9. #13 by fathonie on 28 September 2011 - 12:25

    bgussss bner ni postingannya gan…. sangat membantu…

  10. #14 by feby fitria on 1 Mei 2013 - 21:54

    mas eko, kereeen!!!!

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 137 pengikut lainnya.

%d bloggers like this: