Anda di halaman 1dari 13

Koneksi PHP ke Basis Data MySQL

MySQL
Saat XAMPP terinstal, beberapa modul telah terinstal bersamanya termasuk PHP dan
MariaDB (namun kerap disebut MySQL karena sebelumnya MySQL yang include di
dalamnya). Pada XAMPP control panel, untuk memulai klik tombol start Apache dan
MySQL. Jika warna latar keduanya adalah hijau muda, artinya keduanya sudah
berjalan, siap untuk digunakan.

Untuk bekerja pada basis data MySQL, kita dapat melakukannya melalui console atau
command prompt ataupun menggunakan aplikasi Phpmyadmin bawaan XAMPP. Pada
pembahasan ini, digunakan Phpmyadmin. Menu phpmyadmin dapat diakses dengan
cara mengetikkan alamat http://localhost/phpmyadmin/. Atau bisa juga dari
halaman localhost, lalu pojok kanan atas halaman localhost ada link phpmyadmin.
Pastikan MySQL sudah start pada XAMPP control panel.

Mengelola Basis Data pada phpMyAdmin


1. Membuat Database baru
Perhatikan gambar 1. klik salah satu yang dilingkari merah untuk membuat basis
data. Pada bagian Database name ketikkan nama database (misal sekolah) yang
akan dibuat, diikuti mengklik tombol Create. Maka nama database yang dibuat
akan muncul di lajur kiri halaman (perhatikan tanda *merah pada gambar 2).
2. Membuat tabel
Perhatikan gambar 2. Ketik nama tabel pada bagian yang ditandai dengan angka 1,
lalu tentukan banyak kolom (field) yang akan dibuat pada tabel itu, dan klik Go.
Berikutnya tentukan struktur data tabel tersebut. Sebagai contoh dapat dilihat
pada gambar 3.

Gambar 1. Halaman awal phpMyAdmin

Gambar 2. Tampilan setelah database dibuat.


Gambar 3. Isi struktur lalu klik tombol Save

3. Structure
Dengan mengklik tombol Structure maka halaman menampilkan struktur tabel
yang terpilih/aktif: nama field, jenis, collations, atribut, informasi tambahan, nilai
default dan apakah nilai field dapat berupa NULL. Dapat mencari nilai yang
berbeda dengan mengklik ikon tindakan yang sesuai, juga dapat mengedit struktur
lapangan atau menghapus bidang, serta menentukan indeks yang berbeda:
Primary, Unique, Index dan Fulltext.
4. Search
Dengan tombol search, dibuat kueri penelusuran untuk tabel yang dipilih. Dapat
menggunakan fungsi Query by example untuk melakukan pencarian, klik tombol
Go untuk menjalankannya.
Misalnya, jika ingin menampilkan semua catatan dengan nilai bidang yang dimulai
dengan “A” sebaiknya pilih dulu bidang yang ingin ditampilkan. Pilih operator LIKE
dari menu drop-down dan masukkan nilai field yang sesuai “a%” (% adalah
singkatan dari wildcard string). Klik tombol Go untuk melihat hasilnya.
5. Insert
Dengan Insert, record dimasukkan record ke tabel database. Setelah diisi nilai klik
yang sesuai pada tombol Go dan record baru akan dimasukkan.
6. Empty
Tombol empty digunakan untuk mengosongkan sebuah tabel database,
menghapus data, dan menyimpan tabel kosong.
7. Drop
Tombol drop akan menghapus tabel dan isi recordnya.
8. SQL
Bagian ini untuk menjalan Standard Query Language untuk mengelola basis data
dan tabel. Perintah-perintah yang digunakan pada bagian ini, digunakan juga pada
saat mengelola basis data dan tabel menggunakan fungsi PHP terkait basis data.

Koneksi PHP dan MySQL


Untuk menghubungkan PHP ke basis data MySQL ada beberapa cara:
1. Ekstensi MySQL: fungsi-fungsi dalam PHP untuk memanipulasi database MySQL.
Ekstensi ini sudah tidak di-update, tidak disarankan untuk dipakai lagi.
2. Ekstensi MySQLi: fungsi-fungsi dalam PHP untuk memanipulasi database MySQLi.
Akhiran i itu singkatan dari improved, karena merupakan improvisasi dari ekstensi
MySQL.
3. PDO (PHP Data Object): ekstensi untuk pengaksesan berbagai jenis database (tidak
hanya MySQL). Contohnya, suatu saat penggunaan basis data pada website
bertukar dari MySQL ke PostgreSQL, jika menggunakan ekstensi PDO tidak perlu
mengubah semua kode program, cukup mengubah cara pemanggilan PDO di awal
program saja.
Pembahasan pada materi ini berfokus pada MySQLi.

Ekstensi MySQLi
Ada dua alternatif cara penulisan MySQLi.
1. Menggunakan procedural style. Artinya menggunakan fungsi-fungsi yang
disediakan oleh PHP.
2. Dengan object oriented style. Dengan cara ini, digunakan aturan penulisan
pemrograman objek untuk berkomunikasi dengan MySQL.
Membuat Koneksi MySQL Dengan Fungsi mysqli_connect()
Menghubungkan PHP dengan MySQL Server, digunakan fungsi mysqli_connect().
Fungsi ini membutuhkan beberapa argumen: alamat host, nama user, dan password
user. Sebagai contoh, untuk masuk kedalam MySQL di localhost menggunakan
user root dan dengan password “”, kita menggunakan kode program sebagai berikut:
<?php
   $conn = mysqli_connect("localhost", "root", "");
?>

Fungsi mysqli_connect() memiliki argumen ke-4 yang bersifat opsional yaitu nama basis


data yang ingin digunakan. Contoh sebagai berikut:
<?php
   $conn = mysqli_connect("localhost", "root", "","smkbbl");
?>

Fetching data tabel


Ada beberapa cara untuk mengambil (fetching) data dari tabel
mysqli_fetch_row(); //mengembalikan array numerik
mysqli_fetch_assoc();//mengembalikan array asosiatif
mysqli_fetch_array();//mengembalikan keduanya (array numerik &array asosiatif)
mysqli_fetch_object();
JOBSHEET.
1) Buatlah database dengan nama smkbbl yang didalamnya terdapat tabel dengan
nama ptk
2) Tabel ptk memiliki struktur seperti di bawah

Gambar 4. Struktur tabel ptk.


Isi beberapa record pada tabel ptk.
3) ketikkan beberapa file kode di bawah (koneksi.php, index.php, edit.php, new.php,
dan delete.php).

Ketik kode berikut di folder data, simpan dengan nama koneksi.php


<?php

// Create connection ke basis data


$conn = new mysqli("localhost", "root", "", "smkbbl");

// Menguji koneksi apakah berhasil/tidak


if ($conn->connect_error) {
die("Koneksi gagal karena: " . $conn->connect_error);
}
//echo "Yes, tersambung";
?>

Sebelum database pada MySQL dapat diakses, terlebih dahulu harus


terhubung/terkoneksi ke server. Pada kode di atas, $conn menampung hasil koneksi ke
database smkbbl di localhost dengan username root, tidak ada password.
Jika $conn menampung string penjelasan error, fungsi die akan men-display error
message lalu tidak melanjutkan mengeksekusi skrip. Sebaliknya jika $conn bernilai null,
koneksi ke database di server adalah berhasil.
Ketik kode berikut di folder data, simpan dengan nama index.php
<?php
// Memuat file koneksi.php untuk membuat koneksi ke basis data
include_once ("koneksi.php");

// memanggil semua data ptk dari database


//hasilnya disimpan pada variabel $result
$result = mysqli_query($conn, "SELECT * FROM ptk ORDER BY nama ASC");
?>

<html>
<head>
<title>Welcome</title>
</head>
<body>
<h3>PTK SMK BBL<h3>
<table width='80%' border=1>
<tr>
<th>Nama PTK</th>
<th>Email</th>
<th>No HP/WA</th>
<th>Update</th>
</tr>
<?php
while($dt_ptk = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>".$dt_ptk['nama']."</td>";
echo "<td>".$dt_ptk['email']."</td>";
echo "<td>".$dt_ptk['mobile']."</td>";
echo "<td><a href='edit.php?id=$dt_ptk[id]'>Edit</a> | <a href='delete.php?
id=$dt_ptk[id]'>Delete</a></td></tr>";
};
?>
</table>
<br>
<a href="new.php">Input Data PTK</a>
</body>
</html>

 Program dibuka dengan meng-embed (menyertakan) kode dari file koneksi.php.


Statement include_once berarti: jika file yang dimaksud tidak ditemukan, warning
(E_WARNING) akan ditampilkan lalu lanjut menjalankan baris selanjutnya. Jika
sebelumnya file telah disertakan, pernyataan ini tidak akan menyertakannya lagi.
(catatan: perbedaan include dengan require adalah: jika ada error, require akan
menampilkan pesan error (E_COMPILE_ERROR) dan menghentikan eksekusi skrip).
 Selanjutnya menggunakan fungsi mysqli_query mengajukan permintaan ke
database (diwakili var $conn) untuk select data dari tabel ptk (lalu diurutkan
berdasarkan nama secara ascending). Hasilnya ditampung oleh variabel $result.
 Sementara itu ditampilkan judul laporan dan judul kolom tabel. (Table width = 80%
artinya lebar tabel sebesar 80% dari lebar layar)
 Untuk menampilkan data baris (record) dari tabel digunakan fungsi
mysqli_fetch_array(). Fungsi ini memiliki 1 parameter wajib dan 1 parameter
opsional. Sintaks penulisannya: mysqli_fetch_array (parameter1 [, parameter2]).
Parameter wajibnya adalah set pengenal (identifier) hasil dari fungsi
mysqli_query(). (Untuk kode program di atas, diwakili oleh $result.) Hasil fetch
ditampung oleh variabel array asosiatif $dt_ptk, dan ditampilkan dengan
menyebutkan nama key dari array $dt_ptk.
 Selain sebagai index, file ini juga memiliki fitur link ke file tambah baris data PTK,
edit dan delete data baris PTK (CRUD = Create, Read, Update, and Delete).
Perhatikan link ke Edit, Delete dan Input Data PTK pada gambar 5. Jika link Edit
diklik, menggunakan tag a href,,,,, akan diarahkan ke file edit.php, klik delete akan
diarahkan ke delete.php dan input data ptk akan diarahkan ke file new.php.

Output adalah seperti pada gambar 5 berikut. Data pada tabel output tergantung isi
tabel masing-masing.

Gambar 5. Output index.php


Ketik kode berikut di folder data, simpan dengan nama edit.php
<?php
// include database connection file
include_once("koneksi_i2.php");

// Check if form is submitted for tabel ptk update, then redirect to homepage after
update
if(isset($_POST['update']))
{
$id = $_POST['id'];

$nama=$_POST['nama'];
$mobile=$_POST['mobile'];
$email=$_POST['email'];

// update data ptk


$result = mysqli_query($conn, "UPDATE ptk SET
nama='$nama',
email='$email',
mobile='$mobile' WHERE id=$id");

// Redirect to homepage to display updated data ptk in list


header("Location: index.php");
}
?>
<?php
// Display selected data ptk based on id
// Getting id from url
$id = $_GET['id'];

// Fetch data ptk based on id


$result = mysqli_query($conn, "SELECT * FROM ptk WHERE id=$id");

while($dt_ptk = mysqli_fetch_array($result))
{
$nama = $dt_ptk['nama'];
$email = $dt_ptk['email'];
$mobile = $dt_ptk['mobile'];
}
?>
<html>
<head>
<title>Edit Data PTK</title>
</head>
<body>
<a href="index.php">Home</a>
<br/><br/>

<form name="update_ptk" method="post" action="edit.php">


<table border="0">
<tr>
<td>Name</td>
<td><input type="text" name="nama" value=<?php echo $nama;?>></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email" value=<?php echo $email;?>></td>
</tr>
<tr>
<td>Mobile</td>
<td><input type="text" name="mobile" value=<?php echo $mobile;?
>></td>
</tr>
<tr>
<td><input type="hidden" name="id" value=<?php echo $_GET['id'];?
>></td>
<td><input type="submit" name="update" value="Update"></td>
</tr>
</table>
</form>
</body>
</html>

Ketik kode berikut di folder data, simpan dengan nama new.php


<html>
<head>
<title>Add Data PTK</title>
</head>

<body>
<a href="index.php">home</a>
<br/><br/>

<form action="new.php" method="post" name="form1">


<table width="25%" border="0">
<tr>
<td>Name</td>
<td><input type="text" name="nama"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>Mobile</td>
<td><input type="text" name="mobile"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="Submit" value="Add"></td>
</tr>
</table>
</form>

<?php

// Check If form submitted, insert form data into ptk table.


if(isset($_POST['Submit'])) {
$nama = $_POST['nama'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];

// include database connection file


include_once("koneksi.php");

// Insert user data into table


$result = mysqli_query($conn, "INSERT INTO ptk (nama,email,mobile)
VALUES('$nama','$email','$mobile')");

// Show message when user added


//echo "Data PTK baru. <a href='index.php'>View Data PTK</a>";
header("Location:index.php");
}
?>
</body>
</html>

Ketik kode berikut di folder data, simpan dengan nama delete.php


<?php
// include database connection file
include_once("koneksi.php");

// Get id from URL to delete that user


$id = $_GET['id'];

// Hapus record ptk dari tabel ptk berdasarkan id yg diberikan


$result = mysqli_query($conn, "DELETE FROM ptk WHERE id=$id");

// Lalu redirect ke halaman awal, list menampilkan daftar terbaru setelah


penghapusan.
header("Location:index.php");
?>

Anda mungkin juga menyukai