TUJUAN UMUM
Dapat membuat aplikasi web database dengan menggunakan database MYSQL
TUJUAN KHUSUS
Mampu menerapkan fungsi – fungsi php untuk koneksi ke database mysql
MATERI KULIAH
MySQL adalah salah satu database yang yang free (gratis) yang biasa digunakan untuk menyimpan data – data dari suatu program aplikasi web dan MySQL ini biasanya selalu dikompbinasikan dengan PHP. Dalam php terdapat banyak fungsi untuk mengakses dan mengelola database MySQL, berikut fungsi – fungsi tersebut :
-
Fungsi mysql_connect
Fungsi ini digunakan untuk membuat hubungan ke database MySQL yang terdapat pada suatu host, bentuk pemanggilannya :
mysql_connect(host,nama_pemakai, password)
Argumen
-
host menyatakan nama host tempat MySQL berada
-
pemakai adalah nama pemakai yang mempunyai akses ke database MySQL tersebut
-
Password adalah kata kunci untuk membuka hubungan tersebut.
Fungsi ini mengembalikan nilai TRUE jika hubungan berhasil dibuka dan FALSE jika sebaliknya.
Contoh
$id_mysql = mysql_connect(“localhost”, “php”,”pinguin”)
-
Fungsi mysql_close
Fungsi ini digunakan untuk menutup hubungan dengan database MySQL, bentuk pemanggilannya:
mysql_close(id_mysql)
Argumen
id_mysql adalah pengenal yang didapatkan dari variable pemaggilan fungsi mysql_connect.
Contoh :
-
|
Tes MySQL
<?php
$pemakai = “php”;
$password = “pinguin”;
$id_mysql = mysql_connect(“localhost”,
$pemakai,
$password);
if (! $id_mysql)
die(“Database MySQL tak dapat dibuka”);
mysql_close($id_mysql);
print(“Sukses”);
?>
|
-
Fungsi mysql_select_db
Fungsi ini berguna untuk memilih database, cara pemenggilannya :
mysql_select_db(database, pengenal_hubungan)
Argumen
contoh :
mysql_select_db(“mhs”,$id_mysql);
-
Fungsi mysql_query
Fungsi ini digunakan untuk mengakses statemen sql terhadap suatu tabel, cara pemenggilannya adalah :
mysql_query(permintaan , pengenal_hubungan)
Argumen
-
Fungsi mysql_db_query
Fungsi ini digunakan untuk menjalankan suatu permintaan terhadap suatu database. Bentuk pemanggilan :
mysql_db_query(database, permintaan,pengenal_hubungan)
Argumen :
-
pengenal_hubungan adalah pengenal/variable yang diperoleh pada fungsi mysql_connect.
-
database adalah database yang dipilih.
-
permintaan berupa peryataan/statement sql
-
Fungsi mysql_num_rows
Fungsi ini berguna untuk memperoleh sejumlah baris dari suatu hasil permintaan query. Bentuk pemanggilannya adalah :
mysql_num_rows(pengenal_hasil)
Argumen
pengenal_hasil menyatakan nilai yang diperoleh dari pemanggilan fungsi seperti mysql_db_query atau mysql_query.
-
Fungsi mysql_affected_row
Fungsi ini digunakan untuk memperolah jumlah baris yang dikenai seperti operasi INSERT, DELETE dan UPDATE, bentuk pemanggilannya:
mysql_affected_rows([pengenal_hubungan])
Argumen :
pengenal_hubungan adalah pengenal/variable yang diperoleh pada fungsi mysql_connect.
-
Fungsi mysql_num_fields
Fungsi ini berguna untuk memperoleh jumlah kolom pada suatu hasil permintaan, bentuk pemanggilannya :
mysql_num_field(pengenal_hasil)
Argumen
Pengenal_hasil menyatakan nilai yang diperoleh dari pemanggilan fungsi seperti mysql_db_query atau mysql_query.
Contoh :
-
|
Mengetahui Jumlah Hasil Permintaan
<?php
$pemakai = “php”;
$password = “pinguin”;
$id_mysql = mysql_connect(“localhost”,
$pemakai,
$password);
if (! $id_mysql)
die(“Database MySQL tak dapat dibuka”);
if (! mysql_select_db(“bukualmt”, $id_mysql))
die(“Database tidak bisa dipilih”);
$hasil = mysql_query(“SELECT * FROM kota”,
$id_mysql);
if (! $hasil)
die(“Permintaan gagal dilaksanakan”);
$jum_kolom = mysql_num_rows($hasil);
print(“Jumlah kolom : $jum_kolom
n”);
$jum_baris = mysql_num_rows($hasil);
print(“Jumlah baris : $jum_baris
n”);
mysql_close($id_mysql);
?>
|
-
Fungsi mysql_fetch_row
Fungsi ini menghasilkan suatu array yang berisi seluruh kolom dari sebuah baris pada suatu himpunan hasil. Bentuk pemanggilannya :
mysql_fetch_row(pengenal hasil)
Argumen
Pengenal_hasil menyatakan nilai yang diperoleh dari pemanggilan fungsi seperti mysql_db_query atau mysql_query.
-
|
Menampilkan Daftar Kota
<?php
$pemakai = “php”;
$password = “pinguin”;
$id_mysql = mysql_connect(“localhost”,
$pemakai,
$password);
if (! $id_mysql)
die(“Database MySQL tak dapat dibuka”);
if (! mysql_select_db(“bukualmt”, $id_mysql))
die(“Database tidak bisa dipilih”);
$hasil = mysql_query(“SELECT * FROM kota”,
$id_mysql);
if (! $hasil)
die(“Permintaan gagal dilaksanakan”);
while ( $baris = mysql_fetch_row($hasil) )
{
print(“$baris[0] - $baris[1]
n”);
}
mysql_close($id_mysql);
?>
|
-
Fungsi mysql_fetch_array
Fungsi ini mempunyai kegunaan serupa dengan mysql_fetch_row, hanya saja kolom akan disimpan dua kali pada array hasil, yang pertama memiliki indexs angka dimulai dengan 0 dan yeng kedua berindekan nama kolom bentuk pemanggilannya :
mysql_fetch_array(pengenal_hasil);
Argumen
Pengenal_hasil menyatakan nilai yang diperoleh dari pemanggilan fungsi seperti mysql_db_query atau mysql_query.
-
Fungsi mysql_fetch_field
Fungsi ini berguna untuk memperolh informasi suatu kolom, format pemanggilannya :
mysql_fetch_field(pengenal_hasil,nomor_kolom)
Argumen
fungsi ini memberikan hasil berupa suatu object, berikut daftar object yang dikembalikan oleh fungsi mysql
-
|
Properti
|
Keterangan
|
|
Blob
|
Properti bernilai 1 jika kolom berupa BLOB
|
|
Max_length
|
Panjang maksimum kolom
|
|
Multiple_key
|
Bernilai 1 jika kolom adalah kunci yang tidak unik
|
|
Name
|
Menyatakan nama kolom
|
|
Not_null
|
Bernilai 1 jika kolom tak dapat kosong
|
|
Numeric
|
Bernilai 1 jika kolom bertype numeric
|
|
Primary_key
|
Bernilai 1 jika kolom adalah kunci primer
|
|
Table
|
Nama tabel milik kolom
|
|
Unique_key
|
Bernilai 1 jika kolom adalah kunci unik
|
|
Unsigned
|
Bernilai 1 jika kolom berisi bilangan bertanda
|
|
Zerofill
|
Bernilai 1 jika kolom dipenuhi nol
|
Contoh
-
|
Menampilkan Info Kolom Tabel daftar
<?php
$pemakai = “php”;
$password = “pinguin”;
$id_mysql = mysql_connect(“localhost”,
$pemakai,
$password);
if (! $id_mysql)
die(“Database MySQL tak dapat dibuka”);
if (! mysql_select_db(“bukualmt”, $id_mysql))
die(“Database tidak bisa dipilih”);
$hasil = mysql_query(“SELECT * FROM daftar”,
$id_mysql);
if (! $hasil)
die(“Permintaan gagal dilaksanakan”);
while ( $objek = mysql_fetch_field($hasil) )
{
$ket_kunci = $objek->primary_key ? “Ya”: “Tidak”;
print(“Nama kolom : $objek->name
n”);
print(“Panjang kolom : $objek->max_length
n”);
print(“Sebagai kunci primer: $ket_kunci
n”);
print(“
n”);
}
mysql_close($id_mysql);
?>
|
-
Fungsi mysql_data_seek
Fungsi ini berguna untuk memindahkan pointer ke lokasi tertentu, bentuk pemanggilan :
mysql_data_seek(pengenal_hasil, nomor_baris)
Argumen
Fungsi ini mengembalikan nilai true jika berhasil dan false jika gagal
Contoh
-
|
Contoh mysql_data_seek
<?php
$pemakai = “php”;
$password = “pinguin”;
$id_mysql = mysql_connect(“localhost”,
$pemakai,
$password);
if (! $id_mysql)
die(“Database MySQL tak dapat dibuka”);
if (! mysql_select_db(“bukualmt”, $id_mysql))
die(“Database tidak bisa dipilih”);
$hasil = mysql_query(“SELECT * FROM kota”,
$id_mysql);
if (! $hasil)
die(“Permintaan gagal dilaksanakan”);
mysql_data_seek($hasil, 3);
while ( $baris = mysql_fetch_row($hasil) )
{
print(“$baris[0] - $baris[1]
n”);
}
mysql_close($id_mysql);
?>
|
-
Fungsi mysql_field_seek
Fungsi ini berguna untuk memindah pointer pada suatu himpunan hasil supaya menuju kolom tertentu. Format pemanggilannya adalah :
mysql_field_seek(pengenal_hasil, nomor_kolom)
Argumen
Fungsi ini mengembalikan nilai true jika berhasil dan false jika gagal
-
Fungsi mysql_create_db
Fungsi ini digunakan untuk menciptakan database MySQL. Format pemanggilannya :
mysql_create_db(database, pengenal_hubungan)
Argumen
Fungsi ini mengembalikan nilai TRUE jika berhasil dan FALSE jika gagal
-
Fungsi mysql_drop_db
Fungsi ini digunakan untuk menghapus database MySQL, format penggunaannya :
mysql_drop_db(database [,pengenal hubungan])
Argumen
Fungsi ini mengembalikan nilai TRUE jika berhasil dan FALSE jika gagal
-
Fungsi mysql_list_dbs
Fungsi ini berguna untuk menghasilkan daftar database MySQL, format pemanggilannya:
mysql_list_dbs([pengenal_hubungan])
Argumen
pengenal_hubungan adalah pengenal/variable yang diperoleh pada fungsi mysql_connect
Hasil berupa pointer yang menunjuk daftar databse
Contoh
-
|
Menampilkan Daftar Database
<?php
$pemakai = “php”;
$password = “pinguin”;
$id_mysql = mysql_connect(“localhost”,
$pemakai,
$password);
if (! $id_mysql)
die(“Database MySQL tak dapat dibuka”);
$hasil = mysql_list_dbs($id_mysql);
while ( $db = mysql_fetch_row($hasil) )
{
print(“Database: $db[0]
n”);
}
mysql_close($id_mysql);
?>
|
-
Fungsi mysql_list_tables
Fungsi ini berguna untuk memperoleh daftar nama tabel dalam suatu database. Format pemanggilannya:
mysql_list_tables(database, [pengenal_hubungan])
Argumen
hasil berupa pointer yang dapat diakases melalui perintah mysql_fetch_row
-
|
Menampilkan Daftar Database
<?php
$pemakai = “php”;
$password = “pinguin”;
$id_mysql = mysql_connect(“localhost”,
$pemakai,
$password);
if (! $id_mysql)
die(“Database MySQL tak dapat dibuka”);
$hasil = mysql_list_dbs($id_mysql);
while ( $db = mysql_fetch_row($hasil) )
{
print(“Database: $db[0]
n”);
// Menampilkan nama-nama tabel
$hasil_tabel = mysql_list_tables($db[0]);
while ($nama_tabel = mysql_fetch_row(
$hasil_tabel))
{
print(“—Tabel : $nama_tabel[0]
n”);
}
}
mysql_close($id_mysql);
?>
|
-
Fungsi mysql_list_fields
Fungsi ini berguna untuk memperoleh daftar nama kolom dalam suatu database. Format pemanggilannya:
mysql_list_field(database, nama_tabel [,pengenal_hubungan])
Argumen
-
pengenal_hubungan adalah pengenal/variable yang diperoleh pada fungsi mysql_connect
-
database adalah nama database yang diperoleh dari fungsi mysql_list_dbs
-
nama_tabel adalah string yang diperoleh dari mysql_list_tables
hasil berupa suatu pointer yang dapat diakses melalui fungsi seperti mysql_field_name dan mysql_field_type.
-
|
Menampilkan Daftar Database
<?php
$pemakai = “php”;
$password = “pinguin”;
$id_mysql = mysql_connect(“localhost”,
$pemakai,
$password);
if (! $id_mysql)
die(“Database MySQL tak dapat dibuka”);
$hasil = mysql_list_dbs($id_mysql);
while ( $db = mysql_fetch_row($hasil) )
{
print(“Database: $db[0]
n”);
// Menampilkan nama-nama tabel
$hasil_tabel = mysql_list_tables($db[0]);
while ($nama_tabel = mysql_fetch_row(
$hasil_tabel))
{
print(“—Tabel : $nama_tabel[0]
n”);
// Menampilkan nama-nama kolom
$hasil_field = mysql_list_fields(
$db[0],
$nama_tabel[0]);
$jum_kolom = mysql_num_fields($hasil_field);
for($i = 0; $i < $jum_kolom; $i++)
{
$nama = mysql_field_name($hasil_field, $i);
print(“****** Kolom : $nama
n”);
}
}
}
mysql_close($id_mysql);
?>
|
Koneksi PHP MySQL
Pada umumnya Untuk membuka koneksi dengan MySQL adalah sebahai berikut :
-
|
<?php
// configurasi database MySQL
$dbhost = ‘localhost’; //Nama komputer tempat MySQL
$dbuser = ‘root’; //Nama User MySQL
$dbpass = ‘password’; //Password dari pasangan User
$dbname = ’somedatabase’; // Nama Database
// Koneksi ke MySQL
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die (‘Gagal membuka koneksi ke MySQL Server’);
mysql_select_db($dbname);
//
.. program inti
//
//menutup koneksi ke MySQL
mysql_close($conn);
?> |
CONTOH PROGRAM
Counter pengunjung menggunakan MySQL, sebelum anda membuat programnya buat tabel dengan nama counter dan field pencacah dengan type BIGINT
Counter.php
-
|
Contoh Counter Menggunakan MySQL
<?php
$pemakai = “php”;
$password = “pinguin”;
$database = “test”;
$id_mysql = mysql_connect(“localhost”,
$pemakai,
$password);
if (! $id_mysql)
die(“Database MySQL tak dapat dibuka”);
// Mengunci tabel counter
$hasil = mysql_db_query($database,
“LOCK TABLES counter WRITE”,
$id_mysql);
if (! $hasil)
die(“Permintaan gagal dilaksanakan”);
// Membaca nilai pencacah
$hasil = mysql_db_query($database,
“SELECT * FROM counter”,
$id_mysql);
$data = mysql_fetch_row($hasil);
$pencacah = $data[0];
// Naikkan pencacah
$pencacah++;
// Simpan nilai pencacah ke tabel counter
$perintah_update =
“UPDATE counter SET pencacah = $pencacah”;
$hasil = mysql_db_query($database,
$perintah_update,
$id_mysql);
// Bebaskan penguncian
$hasil = mysql_db_query($database,
“UNLOCK TABLES”,
$id_mysql);
// Tutup hubungan ke MySQL
mysql_close($id_mysql);
// Tampilkan
print(“Anda adalah pengunjung ke-$pencacah”);
?>
|
Berikut adalah contoh program aplikasi guesbook, pada contoh ini antara form untuk input data, simpan data dan untuk membaca data yang telah tersimpan dalam tabel, digabung menjadi satu program, tapi sebelumnya buat dulu tabel guesbook dengan skrip sebaai berikut :
-
|
CREATE TABLE guestbook (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
url VARCHAR(50) NULL,
message TEXT NOT NULL,
entry_date DATE NOT NULL,
PRIMARY KEY(id)
);
|
Guestbook.php
<?php
$dbhost = ‘localhost’;
$dbuser = ‘root’;
$dbpass = ‘puskom’;
$dbname = ‘webphp’;
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die (‘Gagal membuka koneksi ke MySQL Server’);
mysql_select_db($dbname);
// cek apakah button submit ditekan
if(isset($_POST['btnSign']))
{
// mendapatkan variabel pada form
$name = trim($_POST['txtName']);
$email = trim($_POST['txtEmail']);
$url = trim($_POST['txtUrl']);
$message = trim($_POST['mtxMessage']);
if(!get_magic_quotes_gpc())
{
$name = addslashes($name);
$message = addslashes($message);
}
// jika url kosong isi dengan string kosong
if ($url == ‘http://’)
{
$url = ”;
}
// query string
$query = “INSERT INTO guestbook (name, email, url, message, entry_date) ” .
“VALUES (‘$name’, ‘$email’, ‘$url’, ‘$message’, current_date)”;
// mengeksekusi query untuk menambah data
mysql_query($query) or die(‘Error, terjadi kesalahan. ‘ . mysql_error());
header(‘Location: ‘ . $_SERVER['REQUEST_URI']);
exit;
}
?>
Guestbook
/*
fungsi validasi data form
*/
function checkForm()
{
var gname, gemail, gurl, gmessage;
with(window.document.guestform)
{
gname = txtName;
gemail = txtEmail;
gurl = txtUrl;
gmessage = mtxMessage;
}
// peringatan jika nama kosong
if(trim(gname.value) == ”)
{
alert(‘Maukan Nama anda ‘);
gname.focus();
return false;
}
// peringatan jika email kosong atau format salah
else if(trim(gemail.value) != ” && !isEmail(trim(gemail.value)))
{
alert(‘Masukan email anda dengan benar’);
gemail.focus();
return false;
}
// peringatan jika pesan kosong
else if(trim(gmessage.value) == ”)
{
alert(‘Masukan Pesan Anda’);
gmessage.focus();
return false;
}
else
{
return true;
}
}
/*
Fungsi untuk menghilangkan spasi
*/
function trim(str)
{
return str.replace(/^s+|s+$/g,”);
}
/*
fungsi untuk mencek format email
*/
function isEmail(str)
{
var regex = /^[-_.a-z0-9]+@(([-a-z0-9]+.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]).){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
return regex.test(str);
}
Name * |
|
Email |
|
Website URL |
|
Message * |
|
|
|
<?php
// =======================
// menampilkan daftar guest book
// =======================
//maximal baris
$rowsPerPage = 10;
$pageNum = 1;
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
$offset = ($pageNum – 1) * $rowsPerPage;
// query string
$query = “SELECT id, name, email, url, message, DATE_FORMAT(entry_date, ‘%d.%m.%Y’) “.
“FROM guestbook “.
“ORDER BY id DESC “.
“LIMIT $offset, $rowsPerPage”;
// exekusi the query
$result = mysql_query($query) or die(‘Error, terjadi kesalahan. ‘ . mysql_error());
// jika guestbook masih kosong
if(mysql_num_rows($result) == 0)
{
?>
guestbook masih kosong
<?php
}
else
{
while($row = mysql_fetch_array($result))
{
list($id, $name, $email, $url, $message, $date) = $row;
$name = htmlspecialchars($name);
$message = htmlspecialchars($message);
$message = nl2br($message);
?>
<a href=”mailto:” class=”email”>
|
|
<?php
if($url != ”)
{
$url = “$url“;
?>
Homepage :
<?php
}
?>
|
<?php
}
$query = “SELECT COUNT(id) AS numrows FROM guestbook”;
$result = mysql_query($query) or die(‘Error, query failed. ‘ . mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$maxPage = ceil($numrows/$rowsPerPage);
$nextLink = ”;
if($maxPage > 1)
{
$self = $_SERVER['PHP_SELF'];
$nextLink = array();
for($page = 1; $page <= $maxPage; $page++)
{
$nextLink[] = “$page“;
}
$nextLink = “Go to page : ” . implode(‘ » ‘, $nextLink);
}
mysql_close($conn);
?>
<?php
}
?>
Recent Comments