MYSQL dan PHP   Leave a comment

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 :

  1. 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”)

  1. 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”);

?>

  1. Fungsi mysql_select_db

Fungsi ini berguna untuk memilih database, cara pemenggilannya :

mysql_select_db(database, pengenal_hubungan)

Argumen

  • pengenal_hubungan adalah pengenal/variable yang diperoleh pada fungsi mysql_connect

  • database adalah nama database yang dipilih

contoh :

mysql_select_db(“mhs”,$id_mysql);

  1. Fungsi mysql_query

Fungsi ini digunakan untuk mengakses statemen sql terhadap suatu tabel, cara pemenggilannya adalah :

mysql_query(permintaan , pengenal_hubungan)

Argumen

  • pengenal_hubungan adalah pengenal/variable yang diperoleh pada fungsi mysql_connect

  • permintaan merupakan statement sql.

  1. 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

  1. 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.

  1. 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.

  1. 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);

?>

  1. 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);

?>

  1. 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.

  1. Fungsi mysql_fetch_field

Fungsi ini berguna untuk memperolh informasi suatu kolom, format pemanggilannya :

mysql_fetch_field(pengenal_hasil,nomor_kolom)

Argumen

  • Pengenal_hasil menyatakan nilai yang diperoleh dari pemanggilan fungsi seperti mysql_db_query atau mysql_query.

  • nomor_kolom menyatakan nomor kolom yang informasinya ingin didapat

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);

?>

  1. Fungsi mysql_data_seek

Fungsi ini berguna untuk memindahkan pointer ke lokasi tertentu, bentuk pemanggilan :

mysql_data_seek(pengenal_hasil, nomor_baris)

Argumen

  • Pengenal_hasil menyatakan nilai yang diperoleh dari pemanggilan fungsi seperti mysql_db_query atau mysql_query.

  • Nomor_baris menyatakan nomor baris yang dituju.

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);

?>

  1. 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

  • Pengenal_hasil menyatakan nilai yang diperoleh dari pemanggilan fungsi seperti mysql_db_query atau mysql_query.

  • Nomor_kolom adalah nomor kolom yang akan dituju

Fungsi ini mengembalikan nilai true jika berhasil dan false jika gagal

  1. Fungsi mysql_create_db

Fungsi ini digunakan untuk menciptakan database MySQL. Format pemanggilannya :

mysql_create_db(database, pengenal_hubungan)

Argumen

  • database adalah database yang ingin dibuat

  • pengenal_hubungan adalah pengenal/variable yang diperoleh pada fungsi mysql_connect

Fungsi ini mengembalikan nilai TRUE jika berhasil dan FALSE jika gagal

  1. Fungsi mysql_drop_db

Fungsi ini digunakan untuk menghapus database MySQL, format penggunaannya :

mysql_drop_db(database [,pengenal hubungan])

Argumen

  • pengenal_hubungan adalah pengenal/variable yang diperoleh pada fungsi mysql_connect

  • database adalah database yang akan dihapus

Fungsi ini mengembalikan nilai TRUE jika berhasil dan FALSE jika gagal

  1. 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);

?>

  1. Fungsi mysql_list_tables

Fungsi ini berguna untuk memperoleh daftar nama tabel dalam suatu database. Format pemanggilannya:

mysql_list_tables(database, [pengenal_hubungan])

Argumen

  • pengenal_hubungan adalah pengenal/variable yang diperoleh pada fungsi mysql_connect

  • database adalah nama database MySQL

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);

?>

  1. 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://&#8217;)

{

$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

}

?>


Posted 30 August 2008 by Rizal in Database

Tagged with , , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: