{
return htmlentities(mysql_fix_string($string));
}
function mysql_fix_string($string)
{
if (get_magic_quotes_gpc()) $string = stripslashes($string);
return mysql_real_escape_string($string);
}
?>
Sekarang kita telah mempelajari cara mengintegrasikan PHP dengan MySQL dan
menghindari input user yang berbahaya, bab berikutnya akan menjelaskan cara memakai
ekstensi MySQLi yang ditingkatkan untuk kueri MySQL kita.
memakai Ekstensi MySQL
Meminta Database MySQL dengan mysqli
112
Manajemen Database MySQL
Dalam bab ini, saya mereplikasi sejumlah contoh sebelumnya, tetapi menulis ulang
untuk memakai mysqli. Ini akan menjadi contoh yang sangat baik tentang bagaimana kita
dapat memperbarui kode warisan apa pun yang kita temui.
Membuat File Masuk
Membuat file login tidak berbeda dengan mysqli dari sebelumnya, sehingga akan
terlihat seperti contoh dibawah ini.
Contoh File login.php
<?php // login.php
$db_hostname = 'localhost';
$db_database = 'publications';
$db_username = 'username';
$db_password = 'password';
?>
Seperti pada bab sebelumnya, database yang akan kita gunakan adalah yang disebut
publikasi, dan variabel $db_username dan $db_password harus disetel ke nama user dan kata
sandi yang telah kita gunakan dengan MySQL.
Menghubungkan ke MySQL
Dengan file login.php disimpan, kita mengakses database dengan pernyataan
require_once, dan terhubung ke server dengan cara yang ditunjukkan pada Contoh dibawah .
Contoh Menghubungkan ke server MySQL dengan mysqli
<?php
require_once 'login.php';
$connection = new mysqli($db_hostname, $db_username, $db_password, $db_database);
if ($connection ->connect_error) die($connection ->connect_error)
?>
Contoh ini membuat objek baru bernama $connection dengan memanggil metode
mysqli dengan semua nilai yang diambil dari login.php. Perhatikan pemeriksaan kesalahan
yang ditingkatkan, yang kita capai dengan mereferensikan properti $connection -
>connect_error. Jika TRUE, kita memanggil fungsi die dan menampilkan detail yang
menjelaskan kesalahan. Properti connect_error dari $connection berisi string yang merinci
kesalahan koneksi. Objek $connection akan digunakan dalam contoh berikut untuk
mengakses database MySQL.
5.3 MEMBANGUN DAN MENGEKSEKUSI KUERI
Mengirim kueri ke MySQL dari PHP dengan mysqli semudah mengeluarkannya
memakai metode kueri. Contoh dibawah ini menunjukkan cara memakai nya.
Contoh Membuat kueri database dengan mysqli
<?php
$query = "SELECT * FROM classics";
$result = $connection ->query($query);
if (!$result) die($connection ->error);
?>
113
Manajemen Database MySQL
Variabel $query diatur ke kueri yang akan dibuat, tetapi di sini nilai ini diteruskan ke
metode kueri objek $connection, yang mengembalikan hasil yang kita tempatkan di objek
$result. kita telah melakukan semua yang kita butuhkan dengan $connection dan beralih ke
$result untuk menikmati apa yang telah dikembalikan dari koneksi. $ result akan menjadi
FALSE jika ada kesalahan; jika tidak, itu akan menjadi objek yang dapat diakses. Properti
kesalahan $connection berisi string yang merinci kesalahan apa pun.
Mengambil hasil
sesudah objek dikembalikan dalam $result, kita dapat memakai nya untuk
mengambil data yang diinginkan, satu item dalam satu waktu, memakai metode
fetch_assoc objek. Contoh selanjutnya adalah menggabungkan dan memperluas contoh
sebelumnya ke dalam program yang dapat kita ketik dan jalankan sendiri untuk mengambil
hasil ini. Saya sarankan kita menyimpan skrip ini memakai nama file query-mysqli.php.
Contoh Mengambil hasil dengan mysqli, satu sel pada satu waktu
<?php // query -mysqli.php
require_once 'login.php';
$connection =
new mysqli($db_hostname , $db_username, $db_password, $db_database);
if ($connection ->connect_error) die($connection ->connect_error)
$query = "SELECT * FROM classics";
$result = $connection ->query($query);
if (!$result) die($connection ->error);
$rows = $result ->num_rows;
for ($j = 0 ; $j < $rows ; ++$j)
{
$result ->data_seek($j);
echo 'Author: ' . $result ->fetch_assoc()['author'] . ' <br>' ;
$result ->data_seek($j);
echo 'Title: ' . $result ->fetch_assoc()['title' ] . ' <br>' ;
$result ->data_seek($j);
echo 'Category: ' . $result ->fetch_as soc()['category'] . ' <br>' ;
$result ->data_seek($j);
echo 'Year: ' . $result ->fetch_assoc()['year'] . ' <br>' ;
$result ->data_seek($j);
echo 'ISBN: ' . $result ->fetch_assoc()['isbn'] . ' <br><br>' ;
}
$result ->close();
$connection ->close();
?>
Di sini, untuk mencari baris yang benar setiap kali di sekitar loop, kita memanggil
metode data_seek dari $result sebelum mengambil setiap item data. Kemudian kita
memanggil metode fetch_assoc untuk mengambil nilai yang disimpan di setiap sel, dan
menampilkan hasilnya memakai perintah echo. Kita mungkin akan setuju bahwa semua
pencarian data ini agak rumit dan harus ada metode yang lebih efisien untuk mencapai hasil
yang sama. Dan, memang, ada metode yang lebih baik, yaitu mengekstrak satu baris sekaligus.
Mengambil baris
Untuk mengambil satu baris pada satu waktu, ganti loop for dari Contoh sebelumnya
dengan yang disorot dalam huruf tebal pada Contoh dibawah dan kita akan menemukan
114
Manajemen Database MySQL
bahwa kita mendapatkan hasil yang sama persis. Kita mungkin ingin menyimpan file yang
direvisi ini sebagai fetchrow-mysqli.php.
Contoh Mengambil hasil dengan mysqli, satu per satu
<?php //fetchrow -mysqli.php
require_once 'login.php';
$connection =
new mysqli($db_hostname, $db_username, $db_password, $db_database);
if ($connection ->connect_error) die($connection ->connect_error);
$query = "SELECT * FROM classics";
$result = $connection ->query($query);
if (!$result) die($connection ->error);
$rows = $result ->num_rows;
for ($j = 0 ; $j < $rows ; ++$j)
{
$result->data_seek($j);
$row = $result->fetch_array(MYSQLI_ASSOC);
echo 'Author: ' . $row['author'] . '<br>';
echo 'Title: ' . $row['title'] . '<br>';
echo 'Category: ' . $row['category'] . '<br>';
echo 'Year: ' . $row['year'] . '<br>';
echo 'ISBN: ' . $row['isbn'] . '<br><br>';
}
$result ->close();
$connection ->close();
?>
Dalam kode yang dimodifikasi ini, hanya seperlima dari interogasi objek $result yang
dibuat, dan hanya satu pencarian ke objek yang dilakukan di setiap iterasi loop, karena setiap
baris diambil secara keseluruhan melalui metode fetch_array. Ini mengembalikan satu baris
data sebagai array, yang kemudian ditetapkan ke array $row. Metode fetch_array dapat
mengembalikan tiga jenis array sesuai dengan nilai yang diteruskan ke sana:
MYSQLI_NUM
Array numerik. Setiap kolom muncul dalam larik sesuai urutan yang kita tentukan saat
kita membuat (atau mengubah) tabel. Dalam kasus kami, elemen ke nol dari array berisi kolom
Penulis, elemen 1 berisi Judul, dan seterusnya.
MYSQLI_ASSOC
Array asosiatif. Setiap kunci adalah nama kolom. Karena item data direferensikan
dengan nama kolom (bukan nomor indeks), gunakan opsi ini jika memungkinkan dalam kode
kita untuk mempermudah proses debug dan membantu programmer lain mengelola kode kita
dengan lebih baik.
MYSQLI_BOTH
Array asosiatif dan numerik. Array asosiatif biasanya lebih berguna daripada numerik
karena kita dapat merujuk ke setiap kolom dengan nama, seperti $row['author'], daripada
mencoba mengingat di mana letaknya dalam urutan kolom. Jadi skrip ini memakai array
asosiatif, mengarahkan kita untuk melewati MYSQLI_ASSOC.
Menutup koneksi
PHP pada akhirnya akan mengembalikan memori yang telah dialokasikan untuk objek
sesudah kita selesai dengan skrip, jadi dalam skrip kecil, kita biasanya tidak perlu khawatir
115
Manajemen Database MySQL
melepaskan memori sendiri. Namun, jika kita mengalokasikan banyak objek hasil atau
mengambil data dalam jumlah besar, sebaiknya kita mengosongkan memori yang telah
digunakan untuk mencegah masalah di skrip kita nanti.
Pada halaman yang memiliki lalu lintas tinggi hal ini menjadi sangat penting karena
jumlah memori yang dikonsumsi dalam satu sesi dapat bertambah dengan cepat. Oleh karena
itu, perhatikan panggilan ke metode close objek $result dan $connection di skrip sebelumnya,
segera sesudah setiap objek tidak lagi diperlukan. Idealnya, kita harus menutup setiap objek
hasil saat kita telah selesai memakai nya, dan kemudian menutup objek koneksi saat
skrip kita tidak akan mengakses MySQL lagi. Praktik terbaik ini memastikan bahwa sumber
daya dikembalikan ke sistem secepat mungkin untuk menjaga MySQL tetap berjalan secara
optimal, dan mengurangi keraguan apakah PHP akan mengembalikan memori yang tidak
terpakai tepat waktu saat kita memerlukan nya lagi.
Contoh Praktis
Sekarang mari kita tulis ulang program sqltest.php prosedural dari bab sebelumnya
memakai mysqli. Konversinya cukup mudah, seperti yang kita lihat pada Contoh dibawah
(yang harus kita simpan sebagai mysqlitest.php jika kita ingin mengujinya, karena ia terus
memanggil dirinya sendiri).
Contoh Memasukkan dan menghapus memakai mysqlitest.php
<?php // mysqlitest.php
require_once 'login.php';
$connection =
new mysqli($db_hostname, $db_username, $db_password, $db_database);
if ($connection ->connect_error) die($connection ->connect_error);
if (isset($_POST['delete']) && isset($_POST['isbn']))
{
$isbn = get_post($connection, 'isbn');
$query = "DELETE FROM classics WHERE isbn=' $isbn'";
$result = $connection ->query($query);
if (!$result) echo "DELETE failed: $qu ery<br>" .
$connection ->error . "<br><br>";
}
if (isset($_POST['author']) &&
isset($_POST['title' ]) &&
isset($_POST['category']) &&
isset($_POST['year']) &&
isset($_POST['isbn']))
{
$author = get_post($connection, 'author');
$title = get_post($connection, 'title' );
$category = get_post($connection, 'category');
$year = get_post($connection, 'year');
$isbn = get_post($connection, 'isbn');
$query = "INSERT INTO classics VALUES" .
"(' $author', ' $title', ' $category', ' $year', ' $isbn')";
$result = $connection ->q uery($query);
if (!$result) echo "INSERT failed: $query<br>" .
$connection ->error . "<br><br>";
}
116
Manajemen Database MySQL
echo <<<_END
<form action="mysqlitest.php" method="post"><pre>
Author <input type="text" name="author">
Title <input type="text" name="title">
Category <input type="text" name="category">
Year <input type="text" name="year">
ISBN <input type="text" name="isbn">
<input type="submit" value="ADD RECORD">
</pre></form>
END;
$query = "SELECT * FROM classics";
$result = $connection ->query($query);
if ( !$result) die ("Database access failed: " . $connection ->error);
$rows = $result ->numrows;
for ($j = 0 ; $j < $rows ; ++$j)
{
$result ->data_seek($j);
$row = $result ->fetch_array(MYSQLI_NUM);
echo <<<_END
<pre>
Author $row[0]
Title $row[1]
Category $row[2]
Year $row[3]
ISBN $row[4]
</pre>
<form action="mysqlitest.php" method="post">
<input type="hidden" name="delete" value="yes">
<input type="hidden" name="isbn" value="$row[4]">
<input type="submit" value="DELETE RECORD"></form>
END;
}
$result ->close();
$connection ->close();
function getpost($connection, $var)
{
return $connection ->real_escape_string($_POST[$var]);
}
?>
Pada beberapa baris pertama menarik kode dari login.php dan membuat objek
$connection untuk mendapatkan akses ke datab ase. Lalu ada kode untuk menghapus entri,
yang hanya mengeluarkan perintah DELETE ke objek $connection memakai metode
kueri, dan mengembalikan pesan kesalahan jika ada masalah. Kemudian, jika data baru telah
diposting ke program, program akan mengeluarkan perintah INSERT, sekali lagi pada objek
$connection memakai metode kueri. Dalam kedua contoh, objek $result diberikan hasil
dari operasi ini, yang harus berupa TRUE atau FALSE. Bagian utama terakhir dari program ini
berkaitan dengan mengekstraksi data dari database dan menampilkannya memakai
metode data_seek dan fetch_array dari objek $result. Tidak seperti Contoh sebelumnya,
117
Manajemen Database MySQL
bagaimanapun, di mana array asosiatif dikembalikan, di sini metode fetch_array diberi nilai
MYSQLI_NUM sehingga array num erik dikembalikan; karenanya, sel direferensikan secara
numerik (mis., $row[0] untuk penulis). Hasilnya kemudian ditampilkan di setiap iterasi loop,
dan akhirnya objek hasil dan koneksi ditutup. Fungsi get_post juga telah dimodifikasi di sini
untuk memakai metode real_escape_string baru dari objek koneksi, jadi sekarang dua
nilai diteruskan ke sana (koneksi dan nilai string).
5.4 memakai MySQLi SECARA PROSEDUR
Jika kita mau, ada serangkaian fungsi alternatif yang dapat kita gunakan untuk
mengakses mysqli secara prosedural (bukan berorientasi objek). Jadi, alih -alih membuat objek
$connection seperti ini:
$connection = new mysqli($db_hostname, $db_username, $db_password, $db_database);
Anda dapat memakai yang berikut ini:
$link = mysq li_connect($db_hostname, $db_username, $db_password, $db_database);
Untuk memeriksa apakah koneksi telah dibuat dan menanganinya, kita dapat memakai
kode seperti ini:
if (mysqli_connect_errno()) die(mysqli_connect_error()) ;
Dan untuk membuat query MySQL, kita akan memakai kode seperti berikut:
$result = mysqli_query($link, "SELECT * FROM classics");
sesudah kembali, $result akan berisi data. Kita dapat mengetahui jumlah baris yang
dikembalikan sebagai berikut:
$rows = mysqli_num_rows($result));
Integer dikembalikan dalam $rows. Kita dapat mengambil data aktual satu baris pada satu
waktu dengan cara berikut, yang mengembalikan array numerik:
$row = mysqli_fetch_array($result, MYSQLI_NUM);
Dalam contoh ini, $row[0] akan berisi kolom data pertama, $row[1] yang kedua, dan
seterusnya. Seperti yang dijelaskan, baris juga dapat dikembalikan sebagai array asosiatif atau
sebagai kedua jenis, tergantung pada nilai yang diteruskan dalam argumen kedua. Melarikan
diri dari string secara prosedural dengan mysqli semudah memakai yang berikut ini:
$escaped = mysqli_real_escape_string($link, $val);
Untuk cara memakai mysqli secara prosedural dan lengkap (semua aspek lain dari
mysqli), kita dapat mengunjungi http://tinyurl.com/usingmysqli.
118
Manajemen Database MySQL
BAB 6
BERKOMUNIKASI DENGAN DATABASE DARI SKRIP PHP
PHP dan MySQL bekerja sama dengan baik, dan kemitraan dinamis inilah yang
membuat PHP dan MySQL sangat menarik untuk pengembangan aplikasi database web.
Apakah kita memiliki database yang penuh dengan informasi yang ingin kita sediakan untuk
user (seperti katalog produk) atau database yang menunggu untuk diisi oleh user (misalnya,
database pelanggan), PHP d an MySQL bekerja sama untuk mengimplementasikan aplikasi
Anda. Bab ini menjelaskan cara mengakses MySQL dari skrip PHP.
6.1 MENGETAHUI BAGAIMANA MySQL DAN PHP BEKERJA BERSAMA
Anda berinteraksi dengan database dengan mengirimkan pesan ke server MySQL.
Pesan-pesan disusun dalam bahasa SQL, bahasa komputer standar yang dipahami oleh
sebagian besar sistem manajemen database. PHP tidak memahami SQL, tetapi tidak perlu:
PHP hanya membuat koneksi dengan server MySQL dan mengirim pesan SQL melalui koneksi.
Server MySQL menafsirkan pesan SQL, mengikuti instruksi, dan mengirimkan pesan balasan
yang menyatakan statusnya dan apa yang dilakukannya (atau melaporkan kesalahan jika tidak
dapat memahami atau mengikuti instruksi). Bahasa PHP menyediakan fungsi yang membuat
komunikasi dengan MySQL sangat sederhana. Kita memakai fungsi PHP untuk mengirim
kueri SQL ke database. Kita tidak perlu mengetahui detail berkomunikasi dengan MySQL; PHP
menangani detailnya. Kita hanya perlu mengetahui kueri SQL dan cara memakai fungsi
PHP.
6.2 FUNGSI PHP YANG BERKOMUNIKASI DENGAN MySQL
PHP menyediakan dua set fungsi untuk berkomunikasi dengan MySQL — fungsi mysql
dan fungsi mysqli (Peningkatan MySQL). Fungsi mana yang kita gunakan bergantung pada versi
MySQL dan PHP yang kita gunakan. Fungsi mysqli ditambahkan dalam PHP 5 untuk digunakan
dengan MySQL versi 4.1 dan yang lebih baru. Jika kita memakai perusahaan hosting web,
kita perlu tahu apakah ia menawarkan PHP 5, versi MySQL mana yang disediakannya, dan
apakah itu membuat fungsi mysqli tersedia. Dalam buku ini, kita berasumsi bahwa kita
memakai PHP 5 atau yang lebih baru, MySQL 5.0, dan fungsi mysqli. Jika host web kita
tidak menawarkan fungsi mysqli, kita perlu mengonversi fungsi mysqli dalam buku ini ke fungsi
mysql. Jika kita menginstal PHP dan MySQL sendiri di komputer kita berencana untuk
mengembangkan skrip PHP kita secara lokal dan mengunggah skrip yang telah selesai ke
perusahaan hosting web Anda, kita perlu menginstal versi yang sama dan mengaktifkan fungsi
dukungan MySQL yang sama yang disediakan oleh host web Anda. Jika tidak, jika kita
menginstal versi yang berbeda, bahkan yang lebih baru, skrip mungkin tidak berperilaku
dengan cara yang sama di komputer host web kita seperti di komputer lokal Anda.
6.3 BERKOMUNIKASI DENGAN MySQL
Bab ini menjelaskan cara mengakses MySQL dari skrip PHP. Kueri SQL dikirim ke MySQL
memakai fungsi PHP. Berkomunikasi dengan MySQL melibatkan langkah-langkah berikut:
1. Hubungkan ke server MySQL.
2. Kirim kueri SQL.
119
Manajemen Database MySQL
Di bagian ini, kita memberi tahu kita cara melakukan kedua langkah tersebut, dan kita
memberi tahu kita cara mengirim beberapa kueri.
Menghubungkan ke server MySQL
Sebelum kita dapat menyimpan atau mendapatkan data apa pun, kita harus terhubung
ke database, yang mungkin berada di komputer yang sama dengan skrip PHP kita atau di
komputer yang berbeda. Kita tidak perlu mengetahui detail koneksi ke database karena PHP
menangani detailnya, sekarang, yang perlu kita ketahui adalah nama dan lokasi database,
bersama dengan nama user dan kata sandi untuk mengaksesnya. Pikirkan koneksi database
dengan cara yang sama seperti kita memikirkan koneksi telepon. Kita tidak perlu mengetahui
detail tentang bagaimana koneksi dibuat — yaitu, bagaimana kata-kata kita berpindah dari
telepon kita ke telepon lain — kita hanya perlu mengetahui kode area dan nomor telepon.
Perusahaan telepon menangani detailnya.
Untuk terhubung ke server MySQL, kita perlu mengetahui nama komputer tempat
database berada dan ID user dan kata sandi akun MySQL Anda. Untuk sebagian besar kueri,
kita juga perlu mengetahui nama database yang ingin kita gunakan untuk berinteraksi. Untuk
membuka koneksi, gunakan fungsi mysqli_connect:
$cx n = mysqli_connect(“host”,”acct”,”password”,”dbname”) or die (“message”);
Isi informasi berikut:
• host: Nama komputer tempat MySQL diinstal — misalnya,
databasehost.example.com. Jika database MySQL berada di komputer yang sama
dengan situs web Anda, kita dapat memakai localhost sebagai nama komputer.
Jika kita membiarkan informasi ini kosong (“”), PHP mengasumsikan localhost.
• acct: Nama akun MySQL yang valid.
• password: Kata sandi untuk akun MySQL ditentukan oleh acct. Jika akun MySQL tidak
memerlukan kata sandi, jangan ketik apa pun di antara tanda kutip: "".
• dbname: Nama database yang ingin kita gunakan untuk berkomunikasi. Parameter ini
opsional — kita dapat memilih database nanti, dengan perintah terpisah, jika
diinginkan. Kita dapat memilih database yang berbeda kapan saja dalam skrip Anda.
Jika kita memakai fungsi mysql, kita tidak dapat memilih database di fungsi
koneksi. Kita harus memakai fungsi terpisah — mysql_select_db — untuk memilih
database.
• pesan: Pesan yang dikirim ke browser jika koneksi gagal. Sambungan gagal jika
komputer atau jaringan mati, atau jika server MySQL tidak berjalan. Ini juga mungkin
gagal jika informasi yang diberikan tidak benar — misalnya, jika kata sandi
mengandung kesalahan ketik. Kita mungkin ingin memakai pesan deskriptif
selama pengembangan, seperti Tidak dapat terhubung ke server, tetapi pesan yang
lebih umum cocok untuk pelanggan sesudah kita memakai aplikasi, seperti Katalog
tidak tersedia saat ini. Silakan coba lagi nanti.
Host menyertakan nomor port yang diperlukan untuk koneksi. Hampir selalu, nomor portnya
adalah 3306. Terkadang, administrator MySQL perlu mengatur MySQL agar terhubung pada
port yang berbeda. Dalam kasus ini, nomor port diperlukan untuk koneksi. Nomor port
ditentukan sebagai hostname:portnumber. Misalnya, kita mungkin memakai
localhost:8808. Dengan pernyataan ini, mysqli_connect mencoba membuka koneksi ke
komputer yang disebutkan, memakai nama akun dan kata sandi yang diberikan. Jika
koneksi gagal, skrip berhenti berjalan dan mengirim pesan ke browser. Pernyataan berikut
120
Manajemen Database MySQL
terhubung ke server MySQL di komputer lokal, memakai akun MySQL bernama phpuser
yang tidak memerlukan kata sandi:
$cxn = mysqli_connect(“localhost”,”phpuser”,””,”Customer”) or die (“Couldn’t connect to
server.”);
Untuk alasan keamanan, kita harus menyimpan informasi koneksi dalam variabel dan
memakai variabel dalam pernyataan koneksi, sebagai berikut:
$host=”localhost”;
$user=”phpuser”;
$password=””;
$dbname = “Customer”;
$cxn = mysqli_connect($host,$user,$password,$dbname)
or die(“Couldn’t connect to server.”);
atau, untuk lebih amannya, kita dapat meletakkan pernyataan penugasan untuk informasi
koneksi di file terpisah di lokasi tersembunyi sehingga nama akun dan kata sandi tidak ada di
skrip. Kita memasukkan informasi akun dari file dengan memakai pernyataan include.
Variabel $cxn berisi informasi yang mengidentifikasi koneksi . Kita dapat membuka lebih dari
satu koneksi sekaligus dengan memakai lebih dari satu nama variabel. Sambungan tetap
terbuka hingga kita menutupnya atau hingga skrip berakhir. Kita menutup koneksi sebagai
berikut:
mysqli_close($connectionname);
Misalnya, untuk menutup koneksi pada contoh sebelumnya, gunakan pernyataan ini:
mysqli_close($cxn);
Mengirim pernyataan SQL
sesudah kita memiliki koneksi terbuka ke server MySQL, kita mengirim kueri
pernyataan SQL Anda. Untuk berinteraksi dengan database, masukkan pernyataan SQL kita ke
dalam variabel dan kirimkan ke server MySQL dengan fungsi mysqli_query, seperti pada
contoh berikut:
$query = “SELECT * FROM Customer”;
$result = mysqli_query($cxn,$query)
or die (“Couldn’t execute query.”);
Kueri dijalankan pada database yang saat ini dipilih untuk koneksi yang ditentukan.
Variabel $result menyimpan informasi tentang hasil eksekusi kueri tetapi bukan hasil
sebenarnya. Informasi dalam $result tergantung pada apakah kueri mendapatkan informasi
dari database atau tidak:
• Untuk kueri atau pernyataan yang tidak mendapatkan data apa pun: Va riabel $result
berisi informasi tentang apakah kueri atau pernyataan berhasil dieksekusi atau tidak.
Jika berhasil, $result disetel ke true; jika tidak berhasil, $result disetel ke false.
121
Manajemen Database MySQL
Beberapa kueri dan pernyataan yang tidak mengembalikan data adalah INSERT dan
UPDATE.
• Untuk kueri yang mengembalikan data: Variabel $result berisi pengidentifikasi hasil
yang menentukan lokasi data yang dikembalikan, bukan data yang dikembalikan itu
sendiri. Beberapa kueri yang mengembalikan data adalah SELECT dan SHOW.
Penggunaan tanda kutip tunggal dan ganda dapat sedikit membingungkan saat menetapkan
kueri atau pernyataan ke variabel $query . Kita sebenarnya memakai tanda kutip pada
dua tingkat: tanda kutip yang menetapkan string ke $query dan tanda kutip yang merupak an
bagian dari bahasa SQL itu sendiri. Panduan berikut dapat membantu kita menghindari
masalah dengan tanda kutip saat bekerja dengan SQL:
• Gunakan tanda kutip ganda di awal dan akhir string.
• Gunakan tanda kutip tunggal sebelum dan sesudah nama variabel.
• Gu nakan tanda kutip tunggal sebelum dan sesudah nilai literal.
Pernyataan berikut menunjukkan contoh menetapkan string SQL ke variabel di PHP:
$query = “SELECT firstName FROM Customer”;
$query = “SELECT firstName FROM Customer WHERE lastName=’Prakasa’”;
$qu ery = “UPDATE Customer SET lastName=’$last_name’”;
Pernyataan SQL itu sendiri tidak menyertakan titik koma (;), jadi jangan letakkan titik koma di
dalam kutipan terakhir. Satu-satunya titik koma muncul di bagian paling akhir, seperti yang
ditunjukkan pada contoh sebelumnya; ini adalah titik koma PHP yang mengakhiri pernyataan.
Mengirim beberapa pertanyaan
Terkadang, kita ingin mengirim dua atau lebih kueri secara bersamaan. MySQL
memungkinkan kita melakukannya, tetapi kita perlu memakai fungsi yang berbeda untuk
mengirim kueri. Kita dapat mengirim beberapa kueri dengan fungsi berikut:
mysqli_multi_query($cxn,$query)
Anda mengirim kueri dalam satu string dengan kueri dipisahkan oleh titik koma:
$query = “SELECT * FROM Cust;SELECT * FROM OldCust”; mysqli_multi_query($cxn,$query);
Fungsi multiple_query tidak tersedia dengan fungsi mysql, hanya dengan fungsi mysqli.
Mengirim kueri bisa jadi kurang aman daripada mengirim satu kueri. Setiap kali kita
memakai data dari sumber luar, pastikan kita memvalidasi data luar secara menyeluruh.
Misalnya, kita menampilkan formulir yang meminta nama tabel kepada pengguna, dan kita
membuat kueri dari nama tabel yang dimasukkan pengguna, sebagai berikut:
$query = “SELECT * FROM Friend”;
User memasukkan nama tabel Teman. Permintaannya baik-baik saja. Namun, misalkan user
memasukkan yang berikut ini ke dalam formulir:
Friend;DELETE TABLE Friend
122
Manajemen Database MySQL
Pertanyaan kita kemudian adalah
$query = “SELECT * FROM Friend;DELETE TABLE Friend”;
Jika kita mengirim kueri ini, kuerinya tidak begitu baik. Kita tidak akan menyukai hasilnya. Kita
mungkin tidak ingin tabel dihapus. Pastikan untuk selalu membersihkan data sebelum
mengirimnya ke MySQL!
Memilih Database
Jika kita tidak memilih database dalam fungsi koneksi, kita dapat memilih database
dengan memakai fungsi mysqli_select_db . Kita juga dapat memakai fungsi ini untuk
memilih database yang berbeda kapan saja di skrip Anda. Formatnya adalah
mysqli_select_db($cxn,”databasename”) or die (“message”);
Jika kita memakai fungsi mysql, bukan fungsi mysqli, kita harus memilih database dalam
fungsi terpisah, memakai mysql_select_db. Isi informasi berikut:
• cxn: Variabel yang berisi informasi koneksi.
• databasename: Nama database.
• message: Pesan yang dikirim ke browser jika database tidak dapat dipilih. Pemilihan
mungkin gagal karena database tidak dapat ditemukan, yang biasanya merupakan
hasil salah ketik pada nama database.
Misalnya, kita dapat memilih database Pelanggan dengan yang penyataan berikut:
mysqli_select_db($cxn,”Customer”) or die (“Couldn’t select database.”);
Jika mysqli_select_db tidak dapat memilih database, skrip berhenti berjalan dan pesan Tidak
dapat memilih database. dikirim ke browser. Database tetap dipilih hingga kita memilih
database yang berbeda. Untuk memilih database yang berbeda, cukup gunakan pernyataan
fungsi mysqli_select_db baru.
6.4 MENANGANI KESALAHAN MySQL
Anda memakai fungsi mysqli dari bahasa PHP, seperti mysqli_connect dan
mysqli_query, untuk berinteraksi dengan database MySQL. Hal -hal kadang-kadang akan salah
saat kita memakai pernyataan. Kita mungkin membuat kesalahan dalam pengetikan
Anda, seperti salah ketik nama database. Terkadang, muncul masalah yang tidak dapat kita
hindari, seperti database atau jaringan yang sedang down. Kita perlu memasukkan kode dalam
skrip kita yang menangani situasi kesalahan.
Terkadang, programmer sengaja membuat penanganan kesalahan lebih deskriptif
untuk membantu pemecahan masalah selama pengembangan. Misalnya, kita memakai
akun bernama root untuk mengakses database kita dan kita salah ketik, seperti dalam
pernyataan berikut:
$host = “localhost”;
$user = “rot”;
$password = “”;
$cxn = mysqli_connect($host,$user,$pa ssword)
123
Manajemen Database MySQL
Karena kita mengetik "rot" daripada "root", kita melihat pesan peringatan yang mirip dengan
yang ini:
Warning: Access denied for user: ‘rot@localhost’ (Using password: NO) ...
Pesan kesalahan sebelumnya berisi informasi yang kita perlukan untuk memecahkan masalah
— pesan ini menunjukkan nama akun kita yang salah ketik. Namun, sesudah skrip kita berjalan
dan pelanggan memakai nya, kita tidak ingin user kita melihat pesan kesalahan teknis
yang menunjukkan ID user Anda. Kita ingin mematikan kesalahan PHP atau mengirimkannya
ke file log kesalahan. Kita kemudian dapat memakai pernyataan die untuk menghentikan
skrip dan menampilkan pesan sopan kepada pengguna, sebagai berikut:
$cxn = mysqli_connect($host,$user,$password)
or die(“The Catalog is not available at the moment. Please
try again later.”);
saat fungsi mysqli_query() gagal, MySQL mengembalikan pesan kesalahan yang berisi
informasi tentang penyebab kegagalan. Namun, pesan ini tidak ditampilkan kecuali kita secara
khusus menampilkannya. Sekali lagi, kita mungkin ingin melihat pesan-pesan ini saat kita
mengembangkan skrip, tetapi kita mungkin tidak ingin menampilkannya ke publik. Kita dapat
menampilkan kesalahan MySQL yang dikembalikan dengan memakai fungsi berikut:
mysqli_error($cxn)
Misalnya, kita mungkin menyertakan fungsi dalam kode Anda, sebagai berikut:
$query = “SELECT * FROM Cust”;
$result = mysqli_query($cxn,$query)
or die (“Error: “.mysqli_error($cxn));
Dalam contoh ini, jika pemanggilan fungsi gagal, pernyataan die menampilkan kesalahan
MySQL, yang mungkin seperti ini:
Error: Table ‘catalog.cust’ doesn’t exist
Terkadang, kita mungkin ingin melakukan tindakan tambahan jika fungsi gagal, seperti
menghapus variabel atau menutup koneksi database. Kita dapat melakukan tindakan tersebut
dengan memakai pernyataan bersyarat:
if(!$result = mysqli_query($cxn,$query))
{
echo mysqli_error($cxn);
unset($auth);
exit();
}
124
Manajemen Database MySQL
Jika pemanggilan fungsi gagal, pernyataan di blok if akan dieksekusi. Pernyataan gema
menampilkan kesalahan MySQL yang dikembalikan oleh fungsi. Sebuah variabel dihapus, dan
skrip keluar. Perhatikan ! (tanda seru) dalam pernyataan if. ! berarti “tidak”. Dengan kata lain,
pernyataan if benar jika pernyataan penugasan tidak benar.
6.5 FUNGSI MySQL
Anda mungkin bertanya-tanya mengapa ada orang yang ingin memakai fungsi
MySQL saat PHP hadir dengan sejumlah fungsi hebatnya sendiri. Jawabannya sangat
sederhana: fungsi MySQL bekerja pada data yang ada di database. Jika kita memakai PHP,
pertama-tama kita harus mengekstrak data mentah dari MySQL, memanipulasinya, dan
kemudian melakukan kueri database yang kita inginkan.
Untuk melakukan kueri kompleks tanpa menghabiskan banyak waktu kita dapat
memakai fungsi. Jika Anda tertarik untuk mempelajari tentang string dan fungsi
tanggal/waktu yang tersedia lebih lanjut, Anda dapat mengunjungi URL berikut:
http://tinyurl.com/mysqlstrings http://tinyurl.com/mysqldates.
memakai Fungsi mysqli Bermanfaat Lainnya
Fungsi mysqli berguna lainnya tersedia untuk kita gunakan dalam skrip PHP Anda.
Subbagian berikut menjelaskan cara memakai fungsi mysqli untuk menghitung jumlah
baris yang dikembalikan oleh kueri, menentukan entri terakhir yang dibuat secara otomatis,
menghitung baris yang terpengaruh oleh kueri, dan karakter escape.
Menghitung jumlah baris yang dikembalikan oleh kueri
Seringkali, kita ingin tahu berapa banyak baris yang dikembalikan oleh kueri SQL Anda.
Kueri kita menentukan kriteria yang harus dipenuhi informasi untuk dikembalikan, seperti
status harus sama dengan TX atau LastName harus sama dengan Prakasa. Fungsi
mysqli_num_rows memberi tahu kita berapa banyak baris yang ditemukan yang memenuhi
kriteria.
Halaman login sering memakai fungsi ini. saat user mencoba untuk masuk, dia
mengetikkan nama user dan kata sandi ke dalam formulir HTML. Skrip PHP kita kemudian
memeriksa nama user dan kata sandi dalam database. Jika ditemukan, nama user dan kata
sandi valid. Kita mungkin memakai kode yang mirip dengan berikut ini:
$query = “SELECT * FROM ValidUser
WHERE acct = ‘$_POST[userID]
AND password = ‘$password’”;
$result = mysqli_query($cxn,$query);
$n = mysql_num_rows( $result);
if($n < 1)
{
echo “User name and password are not valid”;
exit();
}
Dalam kode ini, kueri SQL mencari baris dengan nama user (disebut acct dalam contoh ini) dan
kata sandi yang diberikan oleh user dalam formulir. Kode kemudian menguji hasil kueri untuk
melihat berapa banyak baris yang dikandungnya. Jika hasilnya tidak berisi baris apa pun, yaitu
kurang dari satu baris, user dengan nama user dan kata sandi yang diberikan tidak ada di
125
Manajemen Database MySQL
database, dan dengan demikian, informasi akun tidak valid dan user tidak diizinkan untuk
masuk di.
Menentukan entri otomatis terakhir
Banyak tabel database berisi field AUTO_INCREMENT. Ini adalah field serial di mana
MySQL menambahkan nilai field secara otomatis. saat sebuah baris ditambahkan, MySQL
memberikan field AUTO_INCREMENT nilai seri berikutnya sesudah baris sebelumnya. Field
tersebut sering didefinisikan sebagai pengidentifikasi unik atau kunci utama untuk tabel.
Karena MySQL menambahkan nilai otomatis, kita tidak perlu tahu nilai mana yang
disimpan di field untuk baris baru. Dalam beberapa situasi, kita perlu mengetahui nomornya
sehingga kita dapat memakai nya nanti dalam skrip. Fungsi mysqli_insert_id
mengembalikan nomor yang terakhir ditambahkan ke field AUTO_INCREMENT.
Satu situasi di mana kita perlu mengetahui nomor MySQL yang disimpan di lapangan
adalah saat kita menyimpan pesanan dan memesan item dalam tabel terpisah. Misalnya, jika
kita mendefinisikan field orderID sebagai field AUTO_INCREMENT, MySQL menambahkan
nomor ke field orderID. Namun, kita perlu menyimpan nomor ini di tabel OrderItem sehingga
kita bisa menghubungkan item ke pesanan. Kita mungkin memakai kode yang mirip
dengan berikut ini:
$query = “INSERT INTO CustomerOrder (customerID,orderDate)
VALUES ($customerID,$date)”;
$result = mysqli_query($cxn,$query);
$orderID = mysqli_insert_id($cxn);
$query = “INSERT INTO OrderItem (orderID,color,size,price)
VALUES ($orderID,$color,$size,$price)”;
$result = mysqli_query($cxn,$query);
Dalam kueri pertama, orderID tidak ditentukan, jadi MySQL menyimpan nomor seri berikutnya
di field itu. Dalam kueri kedua, ID pesanan yang dimasukkan dalam kueri sebelumnya
dimasukkan ke dalam tabel kedua.
Menghitung baris yang terpengaruh
Beberapa kueri SQL mengubah database, tetapi tidak mengembalikan data apa pun.
Misalnya, kueri UPDATE dapat mengubah data dalam tabel, tetapi tidak mengembalikan data
apa pun. Dalam hal ini, pernyataan UPDATE dapat memengaruhi satu, banyak, atau nol baris.
Misalnya, berikut ini adalah pernyataan UPDATE:
$stmt = “UPDATE Customer SET lastName = “Prakasa” WHERE lastName = “Prakasa”;
Pernyataan ini akan mengubah nama belakang apa pun dalam tabel dengan nilai Prakasa
menjadi Prakasa.
Dalam beberapa kasus, kita mungkin perlu mengetahui berapa banyak baris yang
diubah oleh pernyataan tersebut. Dalam contoh ini, mungkin tidak ada seorang pun di
database dengan nama Prakasa atau mungkin ada ratusan. Kita dapat mengetahui berapa
banyak baris yang diperbarui dengan fungsi mysqli_affected_rows. Fungsi ini mengembalikan
jumlah baris yang dipengaruhi oleh pernyataan UPDATE, INSERT, REPLACE, atau DELETE
terakhir.
126
Manajemen Database MySQL
Misalkan kita ingin mengatur field dalam tabel yang mengidentifikasi siswa yang lulus
ujian. Kita mungkin juga ingin tahu berapa banyak siswa yang lulus. Kita mungkin
memakai kode yang mirip dengan berikut ini:
$query = “UPDATE Student SET status=’pass’ WHERE score > 50”;
$result = mysqli_query($cxn,$query);
$passed = mysqli_affected_rows($cxn);
echo “$passed students passed”;
Dalam kode ini, setiap siswa dalam tabel yang nilainya lebih tinggi dari 50 lulus ujian. Variabel
$lulus beri si jumlah siswa yang nilainya cukup tinggi sehingga field status mereka diperbarui
menjadi "lulus".
Escaping Character
Saat kita menyimpan informasi string apa pun di database Anda, kita harus keluar dari
karakter khusus. Ini adalah ukuran keamanan yang penting. Versi PHP sebelum versi 6
menyediakan fitur yang disebut tanda kutip ajaib yang secara otomatis keluar dari semua
string dalam array $_POST dan $_GET. Tanda kutip tunggal, tanda ku tip ganda, garis miring
terbalik, dan karakter nol diloloskan. Fitur ini, dirancang untuk membantu user pemula,
dikendalikan oleh pengaturan magic_quotes -gpc di php.ini dan diaktifkan secara default di
PHP 4 dan PHP 5. Di PHP 6, fitur kutipan ajaib tidak lagi tersedia.
Fitur kutipan ajaib menghasilkan banyak pelarian yang tidak efisien dan tidak perlu. Ini
juga terkadang menghasilkan pelarian yang tidak diinginkan. Secara umum, kita menyarankan
kita mematikan tanda kutip ajaib di file php.ini Anda. Membuat perubahan pada php.ini
dibahas secara lebih rinci dalam Buku IV, Bab 1. Karena penting bahwa kita menghindari data
kita sebelum menyimpannya, jika fitur tanda kutip ajaib dimatikan, kita harus menghapus data
kita secara manual. Fungsi mysqli_real_escape_st ring disediakan untuk tujuan ini. Sebelum
menyimpan data apa pun dalam database, terapkan fungsi ke dalamnya. Baris berikut
menunjukkan beberapa kemungkinan kode yang lolos dari data sehingga aman untuk
disimpan dalam database:
$lastName = mysqli_real_esc ape_string($lastName);
$lastName = mysqli_real_escape_string($_POST[‘lastName’]);
Buku ini mengasumsikan kita memakai PHP 5 atau lebih baru dengan fungsi mysqli untuk
berinteraksi dengan MySQL 5.0 atau 5.1. Jika kita memakai PHP 4, fungsi mysqli tidak
tersedia. Sebagai gantinya, kita memakai fungsi mysql, bahkan dengan versi MySQL yang
lebih baru. Fungsi mysql dapat berkomunikasi dengan versi MySQL yang lebih baru, tetapi
mereka tidak dapat mengakses beberapa fitur baru yang ditambahkan di versi MySQL yang
lebih baru. Fungsi mysql diaktifkan secara otomatis di PHP 4. Sepanjang buku ini, contoh dan
skrip memakai MySQL 5.0 dan fungsi mysqli untuk berkomunikasi dengan MySQL. Fungsi
PHP untuk digunakan dengan MySQL 5.0 memiliki format umum berikut:
mysqli_function(value,value,...);
127
Manajemen Database MySQL
Di dalam nama fungsi adalah singkatan dari perbaikan (MySQL Improved). Bagian kedua dari
nama fungsi khusus untuk fungsi tersebut, biasanya sebuah kata yang menjelaskan apa yang
dilakukan fungsi tersebut. Selain itu, fungsi biasanya memerlukan satu atau lebih nilai untuk
diteruskan, yang menentukan detail seperti koneksi database atau lokasi data. Berikut adalah
dua fungsi mysqli yang dibahas sebelumnya dalam bab ini:
mysqli_connect(connection information);
mysqli_query($cxn,”SQL statement”);
Fungsi mysql yang sesuai adalah
mysql_connect(connection information);
mysql_query(“SQL statement”,$cxn);
Fungsionalitas dan sintaks dari fungsi serupa, tetapi tidak identik, untuk semua fungsi. Secara
khusus, fungsi mysqli memakai proses yang berbeda untuk menghubungkan ke server
MySQL daripada fungsi mysql. Format fungsi mysqli adalah:
mysqli_connect($host,$user,$password,$dbname);
Proses koneksi untuk fungsi mysql memerlukan dua panggilan fungsi:
mysql_connect($host,$user,$password); mysql_select_db($dbname);
Jika kita perlu memakai fungsi mysql, daripada fungsi mysqli, kita perlu mengedit skrip
dalam buku ini, mengganti fungsi mysqli dengan fungsi mysql. Tabel dibawah ini menunjukkan
sintaks fungsi mysqli dan sintaks fungsi mysql yang setara.
Tabel 6.1 Sintaks untuk Fungsi mysql dan mysqli
Fungsi mysqli Fungsi mysql
mysqli_connect($host,$user,
$passwd,$dbname)
mysql_ connect($host,$user, $passwd)
followed by mysql_select_db($dbname)
mysqli_errno($cxn) mysql_errno() or mysql_ errno($cxn)
mysqli_error($cxn) mysql_error() or mysql_ error($cxn)
mysqli_fetch_array($result mysql_fetch_ array($result)
mysqli_fetch_assoc($result) mysql_fetch_ assoc($result)
mysqli_fetch_row($result) mysql_fetch_row($result)
mysqli_insert_id($cxn) mysql_insert_id($cxn)
mysqli_num_rows($result mysql_num_rows($result)
mysqli_query($cxn,$sql) mysql_query($sql) or
mysql_query($sql,$cxn)
mysqli_select_db($cxn, $dbname) mysql_select_db($dbname)
mysqli_real_escape_ string($cxn,$data) mysql_real_escape_ string($data)
128
Manajemen Database MySQL
BAB 7
SETTING UP MySQL
Lingkungan MySQL mencakup perangkat lunak database MySQL dan program
pendukung yang dapat kita gunakan untuk mengelola database MySQL Anda. Perangkat lunak
MySQL terdiri dari server database MySQL, beberapa program utilitas yang membantu dalam
administrasi database MySQL, dan beberapa perangkat lunak pendukung yang dibutuhkan
server MySQL (tetapi kita tidak perlu mengetahuinya). I nti dari MySQL adalah server MySQL,
yang mengelola database. Saat kita berinteraksi dengan database, kita mengirim pesan
dengan permintaan ke server database, yang merespons dengan mengikuti instruksi dalam
permintaan — menyimpan data, mendapatkan data, dan sebagainya. Untuk memakai
database MySQL, kita perlu memakai perangkat lunak yang dapat berkomunikasi dengan
server MySQL. saat kita menginstal MySQL, program client mysql diinstal secara otomatis.
Program ini memungkinkan kita untuk mengelola database MySQL Anda. Dalam bab ini, kita
memberi tahu kita apa yang perlu kita ketahui agar kita dapat mengaktifkan dan menjalankan
MySQL, dan kita juga menyertakan beberapa info tentang pengujian penginstalan serta
melakukan beberapa pemecahan masalah jika kita mengalami masalah.
7.1 MEMERIKSA INSTALASI MySQL
Anda mungkin atau mungkin tidak perlu menginstal MySQL. MySQL tidak dilengkapi
dengan sistem operasi Windows, tetapi dalam banyak kasus di sistem operasi lain, MySQL
sudah diinstal. Misalnya, Linux d an Mac terbaru distribusi secara otomatis menginstal MySQL.
Mencari tahu apakah MySQL sedang berjalan atau diinstal
Sebelum menginstal MySQL, pastikan kita benar-benar perlu menginstalnya. Mungkin
sudah berjalan di komputer Anda, atau mungkin sudah diinstal tetapi tidak berjalan ning.
Berikut cara memeriksa apakah MySQL sedang berjalan:
• Windows: Jika MySQL berjalan, itu akan berjalan sebagai layanan. Untuk memeriksa
ini, pilih Start➪Control Panel➪Alat Administratif➪Layanan dan gulir ke bawah daftar
layanan menurut abjad. Jika MySQL diinstal sebagai layanan, itu muncul dalam daftar.
Jika sedang berjalan, statusnya menampilkan Mulai. Jika kita menemukan MySQL
dalam daftar layanan tetapi belum dimulai, kita dapat memulainya dengan menyorot
MySQL di daftar layanan dan mengklik Mulai Layanan di panel kiri.
• Linux/Unix/Mac: Pada baris perintah, ketik berikut ini:
ps –ax
Outputnya harus berupa daftar program. Beberapa sistem operasi (biasanya rasa Unix)
memiliki opsi berbeda untuk perintah ps. Jika sebelumnya tidak menghasilkan daftar
program yang sedang berjalan, ketik man ps untuk melihat opsi mana yang perlu kita
gunakan. Dalam daftar program yang muncul, cari yang bernama mysqld. Jika kita
menemukannya, MySQL sedang berjalan.
Bahkan jika MySQL saat ini tidak berjalan, mungkin diinstal tetapi tidak dimulai. Berikut cara
memeriksa untuk melihat apakah MySQL sudah terinstal di komputer Anda:
• Windows: Jika kita tidak menemukan MySQL dalam daftar layanan saat ini, cari
direktori atau file MySQL. Kita dapat mencari dengan memilih Start➪Search. Direktori
penginstalan default adalah C:\ Program Files\ MySQL\ MySQL Server nomor versi untuk
versi terbaru atau C:\ mysql untuk versi yang lebih lama.
129
Manajemen Database MySQL
• Linux/Unix/Mac: Ketik perintah berikut:
find / -name “mysql*”
Jika direktori bernama mysql ditemukan, kemungkinan MySQL telah terinstal.
7.2 MEMULAI MySQL
Jika kita menemukan MySQL di komputer kita tetapi tidak menemukannya dalam
daftar layanan saat ini (Windows) atau program yang sedang berjalan (Linux/Unix/Mac), kita
harus memulainya.
Untuk memulai MySQL di Windows, ikuti langkah-langkah berikut:
1. Buka jendela Command prompt.
Di Windows 7, pilih Start➪All Programs➪Accessories➪Command Prompt. Di
Windows 8, ketik perintah dari layar Mulai untuk menemukan Command prompt.
2. Ubah ke folder tempat MySQL diinstal.
Misalnya, ketik cd C:\Program Files\MySQL\MySQL Server 5.0. Kursor kita sekarang
berada di folder MySQL.
3. Ubah ke subfolder bin dengan mengetik cd bin.
Kursor kita sekarang berada di subfolder bin.
4. Jalankan Server MySQL dengan mengetik mysqld --install.
Server MySQL dimulai sebagai layanan Windows. Kita dapat memeriksa penginstalan
dengan masuk ke daftar layanan dan memastikan bahwa MySQL sekarang muncul di
daftar layanan dan statusnya Dimulai.
Untuk Linux, kemungkinan besar program akan memiliki skrip untuk memulainya. Di beberapa
versi Linux, kita dapat memulainya dengan mengetik:
service mysqld starT
Di versi Linux lainnya, kita mungkin dapat memulainya seperti ini:
/etc/init.d/mysqld start
atau
/etc/rc.d/init.d/mysqld start
Lihat dokumentasi Linux kita untuk informasi tentang cara memulai MySQL yang telah diinstal
sebelumnya untuk distribusi dan versi Anda. Jika MySQL tidak terinstal di komputer Anda, kita
perlu mengunduhnya dan menginstalnya dari www.mysql.com. Instruksi disediakan di sisa
bab ini
Mendapatkan MySQL
Perangkat lunak sumber terbuka MySQL tersedia dalam dua edisi:
• Server Komunitas: MySQL edisi open source yang dapat diunduh secara gratis.
Siapapun yang dapat memenuhi persyaratan GPL (GNU Public License) dapat
memakai perangkat lunak ini secara gratis. Jika kita memakai MySQL sebagai
database di situs web (subjek buku ini), kita dapat memakai MySQL secara gratis,
bahkan jika kita menghasilkan uang dengan situs web Anda
• Server Perusahaan: Ini adalah perangkat lunak dan layanan tingkat perusahaan yang
tersedia dengan biaya berlangganan bulanan.
MySQL tersedia dengan lisensi komersial bagi mereka yang menginginkannya. Jika
pengembang ingin memakai MySQL sebagai bagian dari produk perangkat lunak baru dan
130
Manajemen Database MySQL
ingin menjual produk baru, daripada merilisnya secara gratis di bawah GPL, pengembang perl u
membeli lisensi komersial. sesudah memutuskan edisi mana yang ingin kita gunakan, kita dapat
membaca beberapa informasi umum tentang apa yang tersedia di situs web MySQL dan
kemudian mengunduh file yang sesuai untuk sistem operasi kita atau kit all-in-one. Kita juga
dapat memverifikasi bahwa file yang kita unduh aman.
Mengunduh dari situs web MySQL
Anda dapat memperoleh MySQL dari situs resmi MySQL di www.mysql.com. MySQL
tersedia dalam file biner — file mesin yang sudah dikompilasi untuk sistem operasi tertentu.
Jika file biner tersedia untuk sistem operasi Anda, kita harus mengunduh file biner. Jika tidak
ada biner yang tersedia untuk sistem operasi Anda, kita dapat mengunduh kode sumber dan
mengkompilasi dan menginstal MySQL. Untuk mendapatkan MySQL, kunjungi
www.mysql.com, pilih edisi yang sesuai untuk kita gunakan (seperti Server Komunitas), pilih
platform Anda, dan klik tautan Unduh untuk versi yang kita inginkan.
Mendapatkan MySQL untuk Windows
File biner Windows tersedia dengan penginstal, yang akan menginstal,
mengonfigurasi, dan memulai MySQL. Di halaman unduh situs web MySQL untuk versi yang
kita inginkan, temukan bagian Windows. Di bagian Windows, klik tautan unduhan di samping
file yang ingin kita unduh, biasanya penginstal MSI.
Mendapatkan MySQL untuk Linux dan Unix
Banyak distribusi Linux datang dengan MySQL yang sudah diinstal — atau memberi
kita opsi untuk menginstal MySQL saat kita menginstal Linux. Banyak sistem Linux, seperti
Fedora, SuSE, dan Ubuntu, menyertakan utilitas bawaan yang mengunduh dan menginstal
MySQL untuk Anda, seringkali versi terbaru. Jika kita belum memiliki MySQL, dalam banyak
kasus, menginstal MySQL yang disediakan oleh distribusi Linux adalah pilihan yang lebih
mudah dan efisien daripada mengunduh dan menginstal MySQL dari situs web MySQL. Jika
kita perlu menginstal MySQL, seperti jika MySQL di sistem kita adalah versi yang lebih lama,
periksa situs web distribusi Linux kita saat ini untuk melihat apakah ia menawarkan cara
mudah untuk menginstal versi MySQL saat ini. Jika kita tidak bisa mendapatkan MySQL yang
kita butuhkan dari situs web distribusi Linux Anda, kita bisa mendapatkannya dari situs web
MySQL. Halaman download menyediakan beberapa file untuk berbagai distribusi Linux.
Mendapatkan MySQL untuk Mac
Mac OS X 10.2 dan yang lebih baru menyertakan MySQL. Jika kita perlu menginstal
versi MySQL yang lebih baru pada mesin Anda, situs web MySQL menyediakan file DMG untuk
instalasi di Mac OS X 10.6 atau yang lebih baru. Lihat bagian selanjutnya, “Menginstal MySQL
di Mac dari file DMG,” untuk petunjuk. Dalam beberapa situasi yang tidak biasa, kita mungkin
tidak dapat menginstal MySQL dari file DMG, seperti jika kita memerlukan lebih banyak atau
lebih sedikit fitur daripada DMG menyediakan . Kita dapat mengunduh kode sumber dan
mengkompilasi dan menginstal MySQL di Mac kita jika perlu. Instruksi tersedia di situs web
MySQL.
Mendapatkan kit instalasi all-in-one
Anda dapat memperoleh beberapa kit yang menginstal PHP, MySQL, dan Apache
dalam satu prosedur. Kit ini dapat sangat menyederhanakan proses instalasi. Namun,
perangkat lunak yang disediakan mungkin tidak menyertakan fitur dan ekstensi yang kita
butuhkan. XAMPP adalah kit instalasi all-in-one populer yang berisi Apache, PHP, dan MySQL.
Itu juga menginstal phpMyAdmin, sebuah utilitas untuk mengelola database MySQL Anda.
XAMPP memiliki versi stabil yang tersedia untuk Microsoft Windows. XAMPP tersedia di
www.apachefriends.org/en/xampp.html .
Memverifikasi file yang diunduh
131
Manajemen Database MySQL
Situs web MySQL menyediakan metode untuk memverifikasi perangkat lunak sesudah
kita mengunduhnya, sebagai tindakan pencegahan keamanan untuk memastikan bahwa file
tersebut tidak diubah oleh orang jahat. Pada dasarnya, proses yang sama digunakan untuk
memverifikasi file untuk PHP, MySQL, dan Apache.
Menginstal MySQL
Meskipun MySQL berjalan di banyak platform, kita menjelaskan cara menginstalnya di
Windows, Linux, Unix, dan Mac, yang bersama -sama mencakup sebagian besar situs web di
Internet. Pastikan untuk membaca instruksi sepenuhnya sebelum memulai instalasi.
Menjalankan Wizard Pengaturan MySQL di Windows
Untuk mengatur MySQL di Windows, ikuti langkah-langkah berikut:
1. Klik dua kali file penginstal (.msi) yang kita unduh.
Layar pembuka yang ditunjukkan pada Gambar dibawah ini.
Gambar 7.1 Layar pembuka MySQL Setup Wizard.
2. Klik Instal Produk MySQL.
Anda melihat layar untuk menerima perjanjian lisensi. sesudah membaca
ketentuannya, jika kita setuju, pilih I Accept the License Terms dan klik Next.
3. Pilih Jalankan.
Pembaruan akan diunduh. Pada tab Choose a Setup Type, pilih Full, seperti yang
ditunjukkan pada Gambar dibawah ini.
132
Manajemen Database MySQL
Gambar 7.2 Layar Memilih Jenis Pengaturan dari Wizard Pengaturan MySQL.
5. Klik Berikutnya.
Pemeriksaan persyaratan dapat dilakukan; jika sudah, klik Jalankan. Prasyarat akan
diinstal, jika perlu. Klik Berikutnya yang sesuai untuk menginstal prasyarat. Layar
Kemajuan Instalasi akan ditampilkan.
6. Klik Jalankan.
Kemajuan instalasi akan ditampilkan untuk setiap komponen dan kemudian bagian
konfigurasi akan dimulai.
7. Pada dialog Ikhtisar Konfigurasi, klik Berikutnya untuk memulai proses konfigurasi.
8. Pilih Mesin Pengembang dari Konfigurasi Server MySQL
dialog dan klik Berikutnya.
9. Pada dialog Konfigurasi Server MySQL, masukkan kata sandi yang
Anda akan gunakan untuk akses root atau administrator dan klik Next.
10. Pada dialog Ikhtisar Konfigurasi, klik Berikutnya untuk menginstal sampel.
11. Jika sample sudah terpasang, klik Next.
12. Pada dialog Instalasi Selesai, klik Selesai
Menginstal MySQL di Linux dari file RPM
Anda dapat menginstal MySQL di Linux memakai RPM. Meskipun RPM adalah
singkatan dari Red Hat Package Manager, RPM tersedia di banyak varian Linux, tidak hanya
Red Hat. Namun, sebelum menginstal RPM dari MySQL, kita harus melihat apakah distribusi
kita sudah memiliki paket MySQL. memakai versi paket MySQL hampir selalu lebih
disukai dan hampir selalu lebih mudah untuk menginstal dan memelihara nanti. Untuk
menginstal MySQL di Linux dari file RPM yang disediakan di situs web MySQL, ikuti langkah -
langkah berikut:
1. Ubah ke direktori tempat kita menyimpan file yang diunduh.
Misalnya, ketik cd/usr/src/mysql. Satu file bernama MySQL-server-, diikuti dengan
nomor versi, diikuti oleh .i386.rpm. File kedua memiliki nama yang sama dengan client,
bukan server, dalam namanya.
133
Manajemen Database MySQL
2. Instal RPM dengan memasukkan perintah ini:
rpm -i listofpackages
Misalnya, perintahnya mungkin
rpm -i MySQL-server-5.0.35-0.i386.rpm MySQLclient-5.0.35-0.i386.rpm
Perintah ini menginstal paket MySQL. Ini menetapkan akun MySQL dan nama grup
yang kita butuhkan dan membuat direktori data di /var/lib/mysql. Itu juga memulai
server MySQL dan membuat entri yang sesuai di /etc/rc.d sehingga MySQL dimulai
secara otomatis setiap kali komputer kita mulai. Kita harus memakai akun yang
memiliki izin untuk berhasil menjalankan perintah rpm, seperti akun root.
3. Untuk menguji apakah MySQL berjalan dengan baik, ketik ini:
bin/mysqladmin –version
Anda akan melihat nomor versi server MySQL Anda.
Menginstal MySQL di Mac dari file DMG
Anda dapat menginstal MySQL memakai Mac OS X 10.2 (Jaguar) atau paket biner PKG
yang lebih baru yang diunduh dari situs web MySQL di www.mysql.com. Jika sistem operasi
kita lebih awal dari OS X 10.2, kita tidak dapat memakai paket ini; kita perlu mengunduh
tarball (file yang merupakan wadah untuk banyak file dan subdirektori) dan menginstal MySQL
dari kode sumber.
1. Buat user dan grup bernama mysql untuk menjalankan MySQL.
Di sebagian besar OS X versi Mac yang lebih baru, user dan grup ini sudah ada.
2. Ubah ke direktori tempat kita mengunduh MySQL — misalnya, /usr/local.
Anda melihat paket bernama mysql-, diikuti dengan nomor versi dan nomor OS dan
dmg, seperti mysql- 5.0.37-osx10.4 -powerpc.dmg. Jika file yang diunduh tidak memiliki
ekstensi .dmg, ubah nama file menjadi ekstensi .dmg.
3. Pasang image disk dengan mengklik dua kali ikonnya di Finder.
4. Klik dua kali ikon paket untuk menginstal MySQL PKG.
Penginstal paket menjalankan dan menginstal paket. Itu menginstal MySQL di direktori
/usr/local/mysql-, diikuti dengan nomor versi. Itu juga menginstal tautan simbolis,
/usr/local/mysql/, menunjuk ke direktori tempat MySQL diinstal. Ini menginisialisasi
database dengan menjalankan skrip mysql_install_db, yang membuat akun MySQL
yang disebut root.
5. Jika perlu, ganti pemilik direktori mysql.
Direktori tempat MySQL diinstal (misaln ya, /usr/local/mysql-5.0.37) harus dimiliki oleh
root. Direktori data (seperti /usr/local/mysql -5.0.37/data) harus dimiliki oleh akun
mysql. Kedua direktori harus milik grup mysql. Jika user dan grup salah, ubah dengan
perintah berikut:
sudo chown -R root /usr/local/mysql-5.0.37
sudo chown -R mysql /usr/local/mysql-5.0.37/data
sudo chown -R root /usr/local/mysql-5.0.37/bin
6. Instal Item Startup MySQL.
134
Manajemen Database MySQL
Agar server kita mulai setiap kali komputer dinyalakan, kita perlu menginstal Item
Startup MySQL, yang disertakan dalam image disk instalasi dalam paket instalasi
terpisah. Untuk menginstal Item Startup, klik dua kali ikon MySQLStartupItem.pkg.
Menginstal MySQL dari file sumber
Sebelum kita memutuskan untuk menginstal MySQL dari file sumber, periksa RPM atau
file biner untuk sistem operasi Anda. RPM MySQL dan file biner sudah dikompilasi
sebelumnya, paket siap-instal untuk menginstal MySQL dan nyaman serta andal. Kita dapat
menginstal MySQL dengan mengkompilasi file sumber dan menginstal program yang
dikompilasi. Proses ini terdengar teknis dan menakutkan, tetapi sebenarnya tidak. Namun,
bacalah langkah-langkah berikut sebelum kita memulai prosedur penginstalan.
Untuk menginstal MySQL dari kode sumber, ikuti langkah-langkah ini:
1. Buat ID user dan grup untuk MySQL untuk dijalankan dengan memakai perintah
berikut:
groupadd mysql
useradd -g mysql mysql
Sintaks untuk perintah mungkin sedikit berbeda pada versi Unix yang berbeda, atau
mungkin disebut addgroup dan adduser. Catatan: kita harus memakai akun yang
diotorisasi untuk menambahkan user dan grup. Catatan: Beberapa distribusi Linux dan
Mac terbaru memiliki akun mysql yang sudah dibuat.
2. Ubah ke direktori tempat kita mengunduh tarball sumber — misalnya, cd-/usr/local.
Anda melihat file bernama mysql-, diikuti dengan nomor versi dan .tar.gz — misalnya,
mysql-5.0.35.tar.gz. File ini adalah tarball.
3. unpack tarball dengan mengetik
gunzip -c filename | tar -xvf –
Sebagai contoh:
gunzip -c mysql-5.0.35.tar.gz | tar -xvf –
Anda melihat direktori baru bernama mysql-version — misalnya, mysql-5.0.35 — yang
berisi banyak file dan subdirektori. Kita harus memakai akun yang diizinkan untuk
membuat file di /usr/local.
4. Ubah ke direktori baru.
Misalnya, kita dapat mengetik cd mysql-5.0.35.
5. Ketik berikut ini:
./configure --prefix=/usr/local/mysql
Anda melihat beberapa baris output. Output akan memberi tahu kita saat configure
telah selesai. Ini mungkin memakan waktu.
6. Ketik membuat.
Anda melihat banyak baris output. Output akan memberitahu kita saat make install
selesai. make mungkin berjalan untuk beberapa waktu.
7. Ketik make install.
Di Mac, ketik sudo make install. membuat instalasi selesai dengan cepat. Catatan: kita
mungkin perlu menjalankan perintah ini sebagai root.
8. Ketik scripts/mysql_install_db.
Perintah ini menjalankan skrip yang menginisialisasi database MySQL Anda.
135
Manajemen Database MySQL
9. Pastikan kepemilikan dan kememberan grup direktori MySQL kita sudah benar. Atur
kepemilikan dengan perintah ini:
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/data
chgrp -R mysql /usr/local/mysql
Perintah-perintah ini menjadikan root sebagai pemilik semua direktori MySQL kecuali
data dan menjadikan mysql sebagai pemilik data. Semua direktori MySQL milik grup
mysql.
10. Mulai server MySQL memakai perintah berikut:
Di Mac:
cd /usr/local/mysql
sudo ./bin/mysqld_safe
Jika perlu, masukkan kata sandi Anda. Tekan Ctrl+Z, lalu ketik:
bg
Terakhir, tekan Ctrl+D atau ketik exit.
Di Linux/Unix:
cd /usr/local/mysql
bin/mysqld_safe --user=mysql &
11. Siapkan komputer kita sehingga MySQL dimulai secara otomatis saat mesin kita
mulai dengan menyalin file mysql.server dari /usr/local/mysql/support -files ke
lokasi di mana sistem kita memiliki file startup-nya.
7.3 KONFIGURASI MySQL
MySQL membaca file konfigurasi saat dijalankan. Jika kita memakai default atau
penginstal, kita mungkin tidak perlu menambahkan apa pun ke file konfigurasi. Namun, jika
kita menginstal MySQL di lokasi yang tidak standar atau ingin database disimpan di tempat
lain selain default, kita mungkin perlu mengedit file konfigurasi. File konfigurasi bernama
my.ini atau my.cnf. Itu terletak di direktori sistem kita (seperti Windows atau Winnt) jika kita
memakai Windows dan di /etc di Linux, Unix, dan Mac. File berisi beberapa bagian dan
perintah. Perintah berikut di mysqldsection terkadang perlu diubah.
[mysqld]
# The TCP/IP Port the MySQL Server will listen on port=3306
#Path to installation directory. All paths are
# usually resolved relative to this.basedir=”C:/Program Files/MySQL/MySQL Server 5.0/”
#Path to the database root datadir=”C:/Program Files/MySQL/MySQL Server 5.0/Data/”
Tanda # di awal baris membuat baris menjadi komentar. Baris basedir memberitahu
server MySQL di mana MySQL diinstal. Baris datadir memberitahu server di mana database
berada. Kita dapat mengubah nomor port untuk memberi tahu server agar mendengarkan
kueri database pada port yang berbeda.
136
Manajemen Database MySQL
Memulai dan Menghentikan Server MySQL
Jika kita menginstal MySQL di Windows dengan wizard, di Linux dengan RPM, atau di
Mac dengan file PKG, server MySQL dimulai selama instalasi dan diatur sehingga dimulai
secara otomatis setiap kali komputer kita boot. Namun, terkadang kita mungkin perlu
menghentikan atau memulai server. Misalnya, jika kita memutakhirkan MySQL, kita harus
mematikan server sebelum memulai pemutakhiran. Instruksi untuk memulai dan
menghentikan server MySQL disediakan di bagian ini. Jika kita menginstal MySQL dari kode
sumber, kita perlu memulai server MySQL secara manual dan mengaturnya agar mulai secara
otomatis saat komputer kita boot. Instruksi untuk memulai server dan mengaturnya untuk
memulai saat booting disertakan di bagian “Menginstal MySQL dari file sumber”, di awal bab
ini.
Mengontrol server di Windows
Jika kita memakai Windows, MySQL berjalan sebagai layanan. (MySQL diinstal
sebagai layanan saat kita mengonfigurasinya) . Kita dapat memeriksa apakah MySQL diinstal
sebagai layanan. Memulai dan menghentikan layanan dijelaskan di bagian berikut. Kita juga
dapat memulai dan menghentikan server secara manual dengan memakai perintah yang
diatur saat MySQL diinstal. Jika kita memakai Windows 98/Me, kita dapat memulai dan
menghentikan server dari baris perintah di jendela Command Prompt. Memulai dan
menghentikan server di Windows dijelaskan di bagian berikut.
Memulai dan Menghentikan di Windows
Untuk menghentikan atau memulai server MySQL, lakukan hal berikut:
1. Pilih Start➪Control Panel➪Administrative Tool➪Service.
Daftar semua layanan saat ini muncul.
2. Gulir ke bawah daftar abjad dan klik layanan MySQL kita ingin berhenti atau
memulai.
Tautan Berhenti dan Mulai muncul di sebelah kiri nama layanan.
3. Klik Berhenti atau Mulai.
Jika kita tidak menemukan server MySQL dalam daftar, kita dapat mengaturnya
sebagai layanan memakai Wizard Konfigurasi.
Melakukan shutdown manual
Terkadang kita mungkin mengalami kesulitan mematikan server. Kita dapat
mematikan server secara manual sebagai berikut:
1. Buka jendela Command Prompt (mungkin disebut DOS) dengan memilih
Start➪Programs➪Accessories➪Command Prompt.
2. Ubah ke direktori bin di direktori tempat MySQL diinstal.
Misalnya, kita dapat mengetik cd c:\Program Files\MySQL\MySQL Server 5.0\bin.
3. Ketik mysqladmin -u root -p shutdown.
Dalam perintah ini, akunnya adalah root. -p berarti kata sandi, jadi kita akan diminta
untuk mengetik kata sandi. Jika akun yang kita tentukan tidak memerlukan kata sandi,
tinggalkan -p.
Mengontrol server MySQL di Linux dan Mac
Saat MySQL diinstal di Linux, Unix, atau Mac, terkadang skrip diinstal yang dapat kita
gunakan untuk memulai dan menghentikan server, dengan salah satu dari perintah berikut:
mysql.server start
mysql.server stop
mysql_server restart
137
Manajemen Database MySQL
Jika perintah tersebut tidak berfungsi, kita dapat mencoba perintah ini, yang berfungsi pada
versi terbaru Red Hat dan distribusi Linux lainnya:
service mysqld start
service mysqld stop
service mysqld restart
Terakhir, beberapa versi Debian atau Ubuntu juga dapat membuat MySQL mulai
memakai perintah ini:
/etc/init.d/mysql stop
/etc/init.d/mysql start
Anda juga dapat menghentikan server MySQL dengan utilitas mysqladmin yang diinstal saat
MySQL diinstal. Ubah ke subdirektori bin di direktori tempat MySQL diinstal dan ketik:
mysqladmin –u root –p shutdown
-p menyebabkan mysqladmin meminta kita untuk memasukkan kata sandi. Jika akun tidak
memerlukan kata sandi, jangan sertakan -p.
Menguji MySQL
Anda dapat menguji apakah MySQL berjalan dengan memasukkan perintah berikut di
baris perintah:
1. Ubah ke direktori tempat MySQL diinstal.
Misalnya, ketik cd c:\ program files\ mysql\ mysql server 5.0. Catatan: Di Windows, buka
jendela command prompt untuk menyediakan tempat di mana kita bisa mengetikkan
perintah.
2. Ubah ke subdirektori bin (cd bin).
3. Ketik versi mysqladmin.
Output yang memberikan informasi tentang versi MySQL ditampilkan di layar.
Anda dapat menguji lebih lanjut bahwa MySQL siap digunakan dengan menghubungkan ke
server MySQL dari client mysql. saat MySQL diinstal, program sederhana berbasis teks yang
disebut mysql juga diinstal. Karena program ini terhubung dengan server, maka disebut client.
Program ini terhubung ke server MySQL dan bertukar pesan dengan server. Program ini
terletak di subdirektori bin di direktori tempat MySQL diinstal.
Untuk menguji apakah server MySQL berjalan dan menerima komunikasi, lakukan
langkah-langkah berikut:
1. Mulai client.
Di Unix dan Linux, ketik path/nama file (misalnya, /usr/local/mysql/bin/mysql). Di
Windows, buka jendela command prompt dan kemudian ketik path\ nama file (misalnya,
c:\ Program Files\ MySQL\ MySQL Server 5.0\ bin\ mysql). Perintah ini memulai client jika
kita tidak perlu memakai nama akun atau kata sandi. Jika kita perlu memasukkan
nama akun atau kata sandi atau keduanya, gunakan parameter berikut.
• -u user : useradalah nama akun MySQL Anda
• -p : Parameter ini meminta kita untuk memasukkan kata sandi untuk akun MySQL
Anda.
Misalnya, jika kita berada di direktori tempat client mysql berada, perintahnya mungkin
terlihat seperti ini: mysql -u root -p. Tekan Enter sesudah mengetik perintah.
2. Masukkan kata sandi kita saat diminta.
138
Manajemen Database MySQL
Client mysql dimulai, dan kita melihat sesuatu yang mirip dengan ini:
Welcome to the MySQL monitor. Commands end with ; or \ g.
Your MySQL connection id is 459 to server version: 5.0.15
Type ‘help;’ or ‘ \ h’ for help. Type ‘ \ c’ to clear the buffer.
mysql>
Jika server MySQL tidak berjalan dengan benar, pesan kesalahan akan ditampilkan alih-
alih pesan selamat datang.
3. Keluar dari program client dengan mengetikkan quit.
7.4 TROUBLESHOOT MySQL
Beberapa masalah dan solusi instalasi MySQL yang lebih umum dijelaskan di bagian ini.
Menampilkan pesan kesalahan: Akses ditolak
Saat kita mencoba mengakses server MySQL Anda, pesan kesalahan yang mirip dengan
berikut ini ditampilkan:
Access denied for user ‘root’@’localhost’ (using password: YES)
Pesan kesalahan berarti MySQL tidak mengenali nama akun dan kata sandi. Pesan tersebut
memberikan informasi sebanyak mungkin. Dalam hal ini, pesan menunjukkan bahwa akses
dicoba dari localhost memakai root nama akun dan memakai kata sandi. Jika kita
mengakses memakai kata sandi kosong, pesan akan ditampilkan memakai kata
sandi: NO. MySQL tidak mengenali nama akun, nama akun tidak diizinkan untuk diakses dari
host ini, atau kata sandi salah.
Menampilkan pesan kesalahan: Client tidak mendukung protokol otentikasi
Kata sandi MySQL disimpan dalam tabel di database mysql. saat MySQL diperbarui
ke versi 4.1, enkripsi kata sandi diubah, membuat kata sandi lebih aman. Namun, client MySQL
lama tidak memahami enkripsi kata sandi baru, dan mereka menampilkan kesalahan yang
mirip dengan berikut:
Client does not support authentication protocol requested by server; consider upgrading
MySQL client
Secara khusus, terkadang memakai client mysql dengan MySQL 4.1 atau yang lebih baru
menghasilkan masalah ini. Solusi terbaik adalah memutakhirkan ke PHP 5 dan memakai
fungsi mysqli. Jika kita tidak dapat memutakhirkan karena alasan tertentu, kita perlu
memakai fungsi yang disebut OLD_PASSWORD dengan perintah SET PASSWORD untuk
mengatur kata sandi untuk setiap akun yang menyebabkan masalah. Kita mungkin
memakai perintah yang mirip dengan berikut ini:
SET PASSWORD FOR ‘some_user’@’some_host’ = OLD_ PASSWORD(‘newpwd’);
Menampilkan pesan kesalahan: Tidak dapat terhubung ke . . .
Pesan kesalahan 2003, seperti yang ditunjukkan di sini, umumnya berarti server
MySQL tidak berjalan:
(2003): Can’t connect to MySQL server on ‘localhost’
Untuk memperbaiki masalah ini, mulai server sebagai berikut:
139
Manajemen Database MySQL
• Windows: Pilih Start➪Control Panel➪Administrative Tools➪Services Temukan
layanan MySQL dan klik Mulai.
• Linux/Mac: Ketik mysql.server start. Kita mungkin perlu berada di direktori tempat
skrip mysql.server berada.
Log kesalahan MySQL
MySQL menulis pesan ke file log saat mulai atau berhenti. Itu juga menulis pesan
saat terjadi kesalahan. Jika MySQL berhenti berjalan secara tidak terduga, kita harus selalu
mencari petunjuk di log kesalahan.
Berikut adalah beberapa pesan yang mungkin kita temukan di log kesalahan:
070415 17:17:01 InnoDB: Started; log sequence number 0 189675 070415 18:01:05 InnoDB:
Starting shutdown
Log kesalahan disimpan dalam subdirektori bernama data di direktori tempat MySQL diinstal.
Log kesalahan memiliki ekstensi file .err.
Meskipun sering kali kesalahan akan memberi tahu kita apa masalahnya, jika kita
menemukan kesalahan dari log, kita dapat memeriksa manual referensi MySQL di
https://dev.mysql.com/doc/refman/5.5/en/error -handling.html untuk informasi lebih lanjut.
7.5 PROGRAM ADMINISTRASI MySQL
MySQL menyediakan program untuk mengelola database MySQL yang disebut MySQL
Workbench. Program ini tidak diperlukan untuk lingkungan kerja MySQL Anda, tetapi
menyediakan fitur yang membantu kita mengelola database Anda. Program ini berjalan pada
Windows, Linux, dan Mac OS tetapi digunaka n terutama pada lingkungan Windows.
Mengaktifkan Dukungan MySQL
Perangkat lunak PHP dasar terdiri dari serangkaian fungsionalitas inti dan ekstensi
opsional yang menyediakan fungsionalitas tambahan. Dukungan MySQL disediakan oleh
ekstensi. Di PHP 4, dukungan MySQL disediakan secara default, tetapi mulai dengan PHP 5.0,
kita harus mengaktifkan dukungan MySQL sebelum PHP dapat berinteraksi dengan database
MySQL.
PHP menyediakan dua ekstensi untuk dukungan MySQL: ekstensi mysql dan ekstensi
mysqli (MySQL Impr oved). Ekstensi mana yang perlu kita aktifkan bergantung pada versi PHP
dan MySQL yang kita gunakan.
• Ekstensi mysql, tersedia dengan PHP 4, 5, dan 6, menyediakan fungsi untuk
berinteraksi dengan MySQL versi 4.0 dan sebelumnya.
• Ekstensi mysqli, ditambahkan dalam PHP 5, menyediakan fungsi untuk berinteraksi
dengan MySQL versi 4.1 dan yang lebih baru. Kita juga dapat memakai fungsi
mysql dengan versi MySQL yang lebih baru, tetapi mereka tidak dapat mengakses
beberapa fitur baru yang ditambahkan di versi MySQL yang lebih baru.
Mengaktifkan dukungan MySQL di Windows
Anda mengaktifkan MySQL dengan mengkonfigurasi baris ekstensi di file php.ini,
sesudah PHP diinstal. Selain itu, kita harus meletakkan file yang dibutuhkan ekstensi di lokasi
di mana PHP dapat menemukan file tersebut.
Untuk mengkonfigurasi PHP untuk dukungan MySQL, lakukan langkah-langkah berikut:
1. Buka file php.ini untuk diedit.
2. Temukan daftar ekstensi.
3. Temukan baris untuk ekstensi MySQL (mysql atau mysqli, seperti yang telah dibahas
sebelumnya) yang ingin kita gunakan, seperti
;extension=php_mysqli.dll
140
Manajemen Database MySQL
4. Hapus titik koma di awal baris.
Jika tidak ada baris untuk ekstensi MySQL yang ingin kita gunakan, tambahkan baris.
Mengaktifkan dukungan MySQL di Linux dan Mac OS
Dukungan MySQL diaktifkan selama instalasi PHP di Linux dan Mac dengan opsi
instalasi. Opsi penginstalan untuk mengaktifkan MySQL harus digunakan selama Langkah 4
penginstalan untuk mengaktifkan dukungan MySQL. Dukungan MySQL tidak dapat
ditambahkan kemudian, sesudah PHP dikompilasi dan diinstal.
Gunakan salah satu opsi penginstalan berikut:
--with-mysqli=DIR
--with-mysql=DIR
DIR adalah jalur ke direktori MySQL yang sesuai. Saat memakai with-mysqli, gunakan
path ke file bernama mysql_config. Saat memakai with -mysql, gunakan jalur ke direktori
tempat mysql diinstal, seperti:
--with-mysql=/user/local/mysql
Di Debian dan Ubuntu, PHP dan MySQL disertakan dengan paket mereka sendiri, yang disebut
php5-mysql di Debian.
Memeriksa dukungan MySQL
Untuk memeriksa apakah MySQL telah diaktifkan, jalankan skrip test.php. Output
harus menyertakan bagian yang menunjukkan pengaturan MySQL, seperti yang ditunjukkan
pada Gambar dibawah. Jika bagian MySQL tidak muncul di output, lihat bagian berikutnya,
“Pemecahan Masalah PHP dan MySQL.”
Gambar 7.3 Setting MySQL
141
Manajemen Database MySQL
7.6 MEMECAHKAN MASALAH PHP DAN MySQL
Bagian ini membahas beberapa kesalahan umum yang ditemui saat mencoba
menghubungkan PHP dan MySQL satu sama lain, bersama dengan beberapa solusi.
Menampilkan pesan kesalahan: Fungsi tidak terdefinisi
Anda mungkin melihat pesan kesalahan yang mengeluhkan fungsi mysql, mirip dengan berikut
ini:
Fatal error: Call to undefined function mysqli_connect()
Ini berarti bahwa dukungan MySQL tidak diaktifkan untuk fungsi mysqli. Entah kita tidak
mengaktifkan dukungan MySQL atau kita mengaktifkan ekstensi mysql, bukan fungsi mysqli.
Windows
Jika dukungan MySQL tidak diaktifkan, baik baris ekstensi di php.ini tidak diaktifkan
atau PHP tidak dapat menemukan file yang diperlukan. Inilah yang dapat kita lakukan tentang
hal itu:
• Hapus titik koma. Periksa baris ekstensi di php.ini untuk memastikan titik koma
dihapus dari awal baris ekstensi mysqli.
• Mulai ulang atau hentikan dan mulai server web. Jika php.ini terlihat benar, kita
mungkin lupa me-restart server web sesudah melakukan perubahan. Kita juga dapat
mencoba menghentikan server web sepenuhnya dan kemudian memulainya, daripada
memulai ulang.
• Periksa lokasi file php.ini. Kita mungkin mengedit file php.ini yang salah. Pastikan file
php.ini yang kita edit berada di lokasi pencarian PHP, seperti yang ditunjukkan pada
output dari phpinfo().
• Periksa jalur Anda. Periksa apakah direktori tempat php_mysql.dll dan libmysql.dll
berada di jalur sistem Anda. Kita dapat memeriksa jalur kita di output dari phpinfo().
Bagian Lingkungan menjelang akhir output menunjukkan jalan. Namun, jalur yang
ditampilkan bukanlah jalur yang saat ini berlaku kecuali kita memulai ulang sistem
sesudah mengubah jalur. Saat kita mengubah jalur, jalur baru akan ditampilkan, tetapi
jalur tersebut tidak benar-benar aktif hingga kita memulai ulang sistem.
Linux atau Mac
Jika kita melihat pesan kesalahan Fungsi Tidak Terdefinisi di Linux atau Mac, kita tidak
mengaktifkan ekstensi mysql saat kita menginstal PHP. Saat menginstal PHP 5 atau 6, kita
harus memakai salah satu opsi MySQL pada waktu kompilasi
Fungsi MySQL tidak diaktifkan (Windows)
Saat kita melihat output dari phpinfo(), kita mungkin tidak melihat bagian untuk
ekstensi mysql atau mysqli jika kita mengalami masalah dengan MySQL. Namun, di file php.ini
Anda, salah satu atau kedua ekstensi diaktifkan. Beberapa kemungkinan penyebabnya adalah
• Anda tidak me-restart server kita sesudah mengubah pengaturan kita di php.ini.
• Anda mengedit file php.ini yang salah. Periksa output phpinfo() untuk lokasi file
tempat PHP membaca pengaturan.
• File .dll yang diperlukan tidak berada dalam direktori yang ditentukan di jalur sistem
Anda.
• File MySQL .dll yang sedang dibaca PHP adalah untuk versi PHP yang berbeda.
Terkadang saat kita memperbarui PHP, kita tidak mengganti file .dll dengan file .dll
yang baru.
Misalnya, kita menjalankan PHP 5.0 dan file php_mysqli.dll terletak di c: \ windows\ system32.
Kita meningkatkan ke PHP 6.0. Kita menyalin file .dll dari \ ext ke direktori utama PHP dan
menambahkan c:\ php ke akhir jalur sistem Anda. Namun, kita lupa menghapus file .dll lama
142
Manajemen Database MySQL
dari lokasinya saat ini. saat PHP dimulai, ia menemukan file .dll yang lama terlebih dahulu,
karena direktori system32 berada pertama kali di jalur sistem, dan PHP mencoba
memakai file lama. Karena tidak bisa memakai file lama, PHP tidak mengaktifkan
ekstensi mysqli. Ini bisa sangat membingungkan, berbicara dari pengalaman yang
menyakitkan.
7.7 SETTING UP WEB DEVELOPMENT ENVIRONMENT DENGAN PAKET XAMPP
XAMPP adalah kit all-in-one populer yang menginstal Apache, MySQL, dan PHP dalam
satu prosedur. XAMPP juga menginstal phpMyAdmin, aplikasi web yang dapat kita gunakan
untuk mengelola database MySQL Anda. XAMPP dapat sangat menyederhanakan proses
instalasi. Instalasi XAMPP menginstal semua perangkat lunak yang kita butuhkan untuk
aplikasi yang dibahas dalam buku ini. Menurut situs web XAMPP, XAMPP ditujukan sebagai
lingkungan pengembangan pada komputer lokal. Sebagai lingkungan pengembangan, XAMPP
dikonfigurasi untuk menjadi seterbuka mungkin. XAMPP tidak dimaksudkan untuk
penggunaan produksi — tidak aman sebagai lingkungan produksi. Sebelum memakai
XAMPP untuk membuat situs web tersedia untuk umum, kita perlu memperketat keamanan.
XAMPP memiliki versi stabil yang tersedia untuk Windows, Mac, dan beberapa versi Linux.
Karena XAMPP menginstal Apache, MySQL, dan PHP, itu sesuai digunakan untuk instalasi
hanya pada komputer yang tidak memiliki dari tiga paket yang sudah diinstal. Karena Apache
sudah diinstal sebelumnya di banyak komputer Linux dan Mac dan sering juga MySQL
dan/atau PHP, kemungkinan besar kita memakai XAMPP untuk instalasi di lingkungan
Windows. Oleh karena itu, bab ini hanya memberikan instruksi untuk penginstalan Windows.
Mendapatkan XAMPP
Anda dapat mengunduh XAMPP untuk Windows dari
www.apachefriends.org/en/xampp -windows.html. Pada tulisan ini, versi XAMPP saat ini
menginstal yang berikut:
• MySQL
• PHP
• Apache
• phpMyAdmin
Gulir ke bawah halaman web sampai kita tiba di bagian Unduh. Di bawah daftar XAMPP untuk
Windows, klik tautan Penginstal untuk mengunduh versi Penginstal. File yang diunduh diberi
nama xampp -win32-, diikuti dengan versi dan nomor perpustakaan, diikuti oleh -installer.exe,
seperti xampp -win32-1.8.0-VC9 -installer.exe. Simpan file yang diunduh di hard drive kita di
tempat yang mudah ditemukan, seperti desktop.
Menginstal XAMPP
sesudah kita mengunduh XAMPP, ikuti langkah-langkah ini untuk menginstalnya:
1. Arahkan ke lokasi tempat kita menyimpan file XAMPP yang diunduh.
File tersebut bernama sesuatu seperti xampp -win32-1.8.0-VC9 -installer.exe.
2. Klik dua kali file tersebut. Wizard Penyiapan dimulai.
Jika kita menginstal di Windows Vista, 7, atau 8, kita tidak dapat menginstal di folder
Program Files karena masalah perlindungan. Juga, PHP beberapa kali memiliki masalah
berjalan jika diinstal di folder dengan spasi di path atau nama file, seperti Program
Files.
3. Baca dan klik melalui beberapa layar berikutnya sampai Pilih Install
Layar lokasi muncul, seperti yang ditunjukkan pada Gambar dibawah ini. Sebaiknya
terima lokasi default (c: \ xampp) kecuali kita memiliki alasan yang sangat bagus untuk
memilih lokasi lain. Kita dapat mengklik Browse untuk memilih folder instalasi lain.
143
Manajemen Database MySQL
Gambar 7.4 Layar Choose Install Location dari Setup Wizard.
4. sesudah kita memilih folder instal, klik Berikutnya.
Layar XAMPP Options muncul, seperti yang ditunjukkan pada Gambar dibawah ini.
Gambar 7.5 Layar XAMPP Options dari Setup Wizard
5. Di bawah Bagian Layanan, pilih Instal Apache sebagai Layanan dan
Instal MySQL sebagai kotak centang Layanan. Ini menginstal alat sebagai layanan
Windows, yang menyebabkan mereka mulai secara otomatis saat komputer dimulai.
6. Klik tombol Instal.
Proses instalasi memerlukan waktu beberapa menit untuk menyelesaikannya. Saat
proses instalasi, kita melihat berbagai file dan komponen yang diinstal pada sistem
144
Manajemen Database MySQL
Anda, di lokasi yang kita tentukan. Bilah status menunjukkan kemajuan penginstalan.
Saat penginstalan selesai, layar Instalasi Selesai akan muncul.
7. Klik Selesai.
Sebuah jendela kecil terbuka, dan pesan tambahan ditampilkan. Saat bagian
penginstalan ini selesai, layar menampilkan pesan yang memberi tahu kita bahwa
penginstalan layanan telah selesai.
8. Klik OK.
Pertanyaan berikut ditampilkan: Mulai Control Panel XAMPP sekarang
Start the XAMPP Control Panel now?
Layar menampilkan tombol Yes dan No.
9. Klik YES.
Control Panel XAMPP muncul
memakai Control Panel XAMPP
XAMPP menyediakan Control Panel untuk manajemen perangkat lunak yang efisien
dalam paket XAMPP. Kita dapat memakai Control Panel untuk menentukan apakah
Apache dan MySQL sedang berjalan dan untuk memulai atau menghentikannya. Sebelum kita
dapat memakai lingkungan pengembangan Anda, Apache dan MySQL harus dijalankan.
Bagian ini memberitahu kita bagaimana memakai Control Panel untuk memulai dan
menghentikan Apache dan MySQL. Control Panel XAMPP dapat berjalan terus menerus, siap
untuk kita gunakan setiap saat. Saat Control Panel sedang berjalan, kita melihat ikon oranye
di baki sistem di kanan bawah layar komputer Anda, seperti yang ditunjukkan pada Gambar
dibawah ini.
Gambar 7.6 Ikon Kontrol Panel
Jika ikon XAMPP ada di baki sistem Anda, kita dapat mengkliknya untuk membuka
Control Panel. Jika kita tidak memiliki ikon di baki sistem Anda, kita dapat membuka Control
Panel dengan memilih Start➪All ProgramsApache Friends➪XAMPP➪XAMPP Control Panel.
Jika kita mencoba untuk membuka Control Panel saat sudah berjalan, pesan kesalahan akan
ditampilkan. Gambar selanjutnya menunjukkan Control Panel terbuka dengan Apache dan
MySQL berjalan. Jika instalasi berjalan lancar, Control Panel kita akan muncul seperti ini saat
kita membukanya sesudah instalasi. Baik Apache dan MySQL ditampilkan sebagai berjalan, dan
kotak centang Layanan dipilih. Lingkungan pengembangan kita siap digunakan.
145
Manajemen Database MySQL
Gambar 7.7 Control Panel XAMPP.
Terkadang, XAMPP tidak dapat memulai Apache atau MySQL sebagai layanan selama
instalasi. Control Panel mencantumkan perangkat lunak, menunjukkan bahwa itu diinstal,
tetapi statusnya tidak ditampilkan sebagai berjalan. Apache dan MySQL harus dijalankan
sebelum kita dapat memakai lingkungan pengembangan Anda. Untuk memulai Apache
atau MySQL saat tidak berjalan, pilih kotak centang Layanan dan klik tombol Mulai. Jika
XAMPP berhasil memulai perangkat lunak, status akan ditampilkan sebagai berjalan. Jika
XAMPP tidak berhasil memulai perangkat lunak sebagai layanan, kita mungkin perlu memulai
perangkat lunak tanpa memilih kotak centang Layanan. Lihat bagian "Pemecahan Masalah" di
akhir bab ini untuk informasi lebih lanjut tentang memulai Apache dan MySQL saat kita
memiliki masalah.
Tombol Berhenti ditampilkan untuk setiap paket perangkat lunak yang sedang
berjalan. Kita dapat menghentikan perangkat lunak, cukup tepat, dengan mengklik tombol
Stop. Kita terkadang perlu menghentikan perangkat lunak, seperti saat kita perlu
memutakhirkannya.
Anda perlu me-restart Apache setiap kali kita membuat perubahan pada konfigurasi PHP
Anda, seperti yang dijelaskan di seluruh buku ini. Untuk me-restart Apache, klik tombol Stop
dan kemudian, sesudah Apache dihentikan, klik tombol Start. Jika kita menutup Control Panel
dengan mengklik Exit, program berakhir, dan kita tidak memiliki ikon XAMPP Control Panel di
baki sistem kita. Jika kita baru saja menutup jendela Control Panel dengan mengklik X di sudut
kanan atas jendela, ikon Control Panel tetap tersedia di baki sistem Anda.
Menguji Lingkungan Pengembangan Anda
sesudah kita menginstal paket XAMPP dan memulai Apache dan MySQL, lingkungan
kita akan siap digunakan. Kita dapat menguji instalasi kita dengan melakukan hal berikut
dalam urutan apa pun:
• Buka halaman web XAMPP
• Buka phpMyAdmin
• Jalankan test PHP script
146
Manajemen Database MySQL
Membuka halaman web XAMPP
Untuk menguji penginstalan XAMPP, ikuti langkah-langkah berikut:
1. Buka peramban.
2. Ketik localhost di address bar browser.
Dalam beberapa kasus, jika mesin lokal kita tidak diatur untuk mengenali localhost,
kita mungkin perlu mengetikkan 127.0.0.1 sebagai gantinya. Halaman web XAMPP
ditampilkan, menyediakan pilihan bahasa. Dalam beberapa kasus, XAMPP sudah
mengatur pilihan bahasa kita dan tidak bertanya lagi. Dalam hal ini, kita tidak perlu
melakukan Langkah 3 karena browser kita sudah berada di halaman yang ditunjukkan
pada Gambar dibawah ini.
Gambar 7.8 Halaman Selamat Datang XAMPP
3. Klik bahasa pilihan Anda.
Tampilan halaman Selamat Datang XAMPP, seperti yang ditunjukkan pada Gambar
diatas. Jika halaman web tidak ditampilkan, Apache mungkin tidak berjalan. Gunakan
Control Panel kita untuk mengelola Apache, seperti yang dijelaskan di bagian
sebelumnya.
4. Klik tautan Status di panel di sisi kiri halaman.
Daftar perangkat lunak muncul, menunjukkan perangkat lunak mana yang diaktifkan.
MySQL dan PHP harus terdaftar sebagai diaktifkan. Apache tidak terdaftar karena jika
Apache tidak berjalan, kita tidak dapat melihat halaman ini sama sekali.
Menguji phpMyAdmin
Dari halaman XAMPP welcome page kita dapat membuka phpMyAdmin untuk menguji
instalasi. Klik tautan phpMyAdmin di bagian tool di bagian bawah panel kiri. Jika phpMyAdmin
diinstal, itu terbuka di browser Anda. Jika halaman phpMyAdmin tidak terbuka, pastikan
Apache dimulai.
Menguji PHP
Untuk menguji apakah PHP terinstal dan berfungsi, ikuti langkah-langkah berikut:
1. Temukan direktori tempat skrip PHP kita perlu disimpan.
Direktori ini dan subdirektori di dalamnya adalah ruang web Anda. Ini adalah ruang di
mana Apache mencari skrip kita saat kita mengetik localhost. Direktori ini disebut
htdocs dan terletak di direktori tempat kita menginstal XAMPP, seperti
c:\ xampp \ htdocs. Kita dapat mengubah lokasi ruang web kita di file konfigurasi
Apache.
2. Buat file teks di ruang web kita dengan nama test.php.
File harus berisi konten berikut:
147
Manajemen Database MySQL
<html>
<head><title>PHP test</title></head>
<bo dy>
<?php
phpinfo();
?>
</body>
</html>
3. Buka browser dan ketik localhost/test.php ke dalam bilah alamat.
Output dari skrip PHP ini adalah daftar panjang pengaturan dan variabel untuk instalasi
PHP Anda, seperti yang ditunjukkan pada Gambar dibawah ini.
Gambar 7.9 Output dari skrip PHP.
4. Gulir ke bawah daftar untuk menemukan bagian pengaturan untuk MySQL.
Bagian perangkat lunak terdaftar dalam urutan abjad, dimulai dengan bcmath. Bagian
MySQL terletak sekitar setengah dari daftar. Kita menemukan dua blok, satu menuju
mysql dan satu menuju mysqli.
saat skrip PHP kita berjalan dengan benar dan output menyertakan blok pengaturan untuk
dukungan MySQL, lingkungan kita siap untuk pekerjaan pengembangan Anda. Jika skrip PHP
tidak berjalan, pastikan Apache dimulai. Kita dapat mengelola Apache seperti yang dijelaskan
di bagian “memakai Control Panel XAMPP”, di awal bab ini.
Mengonfigurasi Lingkungan Pengembangan Anda
Apache, MySQL, dan PHP dapat dikonfigurasi. Pengaturan konfigurasi mereka
disimpan dalam file teks, yang dapat kita edit. saat XAMPP menginstal perangkat lunak, itu
membuat file konfigurasi dengan pengaturan default sehingga perangkat lunak berjalan
dengan pengaturan umum. Namun, kita mungkin perlu mengubah konfigurasi karena
berbagai alasan. Pengaturan konfigurasi dijelaskan di seluruh buku saat fitur tertentu yang
sedang dikonfigurasi dibahas.
148
Manajemen Database MySQL
XAMPP menginstal semua perangkat lunak di direktori yang kita tentukan selama
instalasi, seperti c:\ xampp, yang merupakan direktori default. XAMPP mengkonfigurasi
perangkat lunak untuk mencari file konfigurasi di direktori ini. Jika kita perlu mengubah
pengaturan konfigurasi apa pun, kita harus mengedit file konfigurasi di direktori ini, bukan di
direktori yang disebutkan dalam file bantuan atau dokumentasi lain untuk masing-masing
perangkat lunak.
Konfigurasi PHP
PHP memakai pengaturan dalam file bernama php.ini untuk mengontrol
beberapa perilakunya. PHP mencari php.ini saat dimulai dan memakai pengaturan yang
ditemukannya. Jika PHP tidak dapat menemukan file, ia memakai satu set pengaturan
default. XAMPP menyimpan file php.ini di direktori apache\ bin di folder XAMPP utama.
Misalnya, jika XAMPP terletak di direktori default, kita mengedit file
c:\ xampp \ apache\ bin\ php.ini untuk mengubah pengaturan konfigurasi PHP.
Untuk mengkonfigurasi PHP, ikuti langkah-langkah berikut:
1. Buka file php.ini untuk diedit di editor teks.
2. Edit pengaturan yang ingin kita ubah.
Langkah 3 dan 4 menyebutkan beberapa pengaturan khusus yang harus selalu kita
ubah jika kita memakai lingkungan yang ditentukan.
3. Hanya jika kita memakai PHP 5 atau lebih lama, matikan tanda kutip ajaib.
Cari baris berikut:
magic-quotes-gpc
Perubahan On ke Off.
4. Hanya jika kita memakai PHP 5 atau lebih baru, atur zona waktu lokal Anda.
Temukan garis:
;date.timezone=
Hapus titik koma dari awal baris. Tambahkan kode untuk zona waktu lokal kita sesudah
tanda sama dengan. Misalnya, garisnya mungkin
date.timezone = Indonesia/Waktu_Indonesia_Barat
Anda dapat menemukan daftar kode zona waktu di
www.php.net/manual/en/timezones.php.
5. Simpan file php.ini.
6. Restart Apache agar pengaturan baru mulai berlaku.
Secara umum, pengaturan default yang tersisa memungkinkan PHP untuk berjalan
dengan baik, tetapi kita mungkin perlu mengedit beberapa pengaturan ini untuk alasan
tertentu. Kita membahas pengaturan dalam file php.ini di seluruh buku ini saat kita
membahas topik y