Tutorial PHP dan MySQLi

Tutorial ini adalah kelanjutan dari Tutorial sebelumnya. Tutorial kali ini membahas operasi CRUD dengan menggunakan ektensi MySQLi. MySQLi adalah ektensi PHP yang digunakan untuk melakukan koneksi ke database MySQL. Huruf i di akhir artinya Improved (Yang disempurnakan) . Di tutorial sebelumnya sudah kita bahas koneksi database dengan ektensi default MySQL. Ada beberapa alasan mengapa KITA harus migrasi kode PHP dari kode seperti mysql_query() ke ektensi MySQLi ini. Catatan penting disini, dari sisi struktur project, struktur tabel dan interface tidak ada perubahan. Perubahan dari mySQL ke MySQLi ada dibelakang layar, terutama dari sisi performa menunjukan msyqli lebih cepat dibanding mysql.

Berikut ini adalah alasan mengapa mulai sekarang sebaiknya anda menggunakan MySQLi dalam pemrograman PHP MySQL

Point MySQL MySQLi
Pengembangan Sudah tidak lagi di kembangkan Masih terus dikembangkan
Support Resmi Deprecated Long term support
Mendukung OOP Tidak Ya
Mendukung Prepare statement Tidak Ya
Mendukung Store procedur Tidak Ya
Mendukung Transaksi (commit, rollback) Tidak Ya

Dari tabel perbandingan diatas saja sudah sangat jelas bahwa lebih banyak kelebihan MySQLi ketimbang ektensi MySQL. Selain itu, MySQLi juga bisa digunakan secara prosedural ataupun menggunakan OOP, berikut ini gambaran fungsinya agar anda punya gambaran real tentang perbedaan kodenya.

Tabel perbandingan MySQL dan MySQLi

Hal MySQL MySQLi Prosedural MySQLi OOP
Koneksi database mysql_connect() mysqli_connect() $db = new mysqli(db_host,db_user,db_pass,db_name);
Query select mysql_query() mysqli_query() $db->query($sql)

Jadi, dengan MySQLi anda masih bisa menggunakan gaya prosedural ataupun OOP, tergantung kebiasaan anda. JIka kita lihat sekilas, gaya prosedural MySQLi sama saja dengan MysQL cuma fungsinya ditambah i, sebagai contoh mysql_query menjadi msyqli_query().

mengecek dukungan MySQLi di PHP

Untuk memastikan anda bisa memakai fungsi MySQLi, dari menu XAMPP buka phpinfo() maka jika ada tampilan berikut ini, dipastikan anda MySQLi didukung di server.

mengecek support mysqli
mengecek support mysqli

Sample Code CRUD

Interface MysqlI Bisa digunakan secara prosedural ataupun OOP, di sini saya hanya memberikan sample dengan OOP dan prepare statement yang akan memudahkan anda saat memakai Framework PHP.

Koneksi database

	define('db_host','localhost');
	define('db_user','root');
	define('db_pass','');
	define('db_name','candralab');
	
$db = new mysqli(db_host,db_user,db_pass,db_name);

if($db->connect_errno > 0){
    die('Unable to connect to database [' . $db->connect_error . ']');
}	

Tampil data

 $sql="select * from kampus ";
     if(!$result = $db->query($sql)){
     die(' query error [' . $db->error . ']');
}
 while($kampus = $result->fetch_object()){
echo $kampus->nama;
echo $kampus->alamat;
}

insert


	$sql = "INSERT INTO kampus(nama,alamat)
		VALUES(?,?)";

	$stmt = $db -> prepare($sql);
	$stmt -> bind_param('ss',$nama, $alamat);
	$stmt -> execute();
	

update

	$sql = "update kampus set nama=?,
    alamat=?
    where idkampus=?";
	$stmt = $db -> prepare($sql);
	$stmt -> bind_param('ssi',$nama, $alamat,$id);
	$stmt -> execute();

delete


	$sql = "delete from kampus
    where idkampus=?";
	$stmt = $db -> prepare($sql);
	$stmt -> bind_param('i',$id);
	$stmt -> execute();

Perhatikan pada baris $stmt->bind_param'typedata',$param1,param2...) Tipe data di param ini hanya bisa di isi dengan 4 jenis yaitu

  1. i Integer
  2. dDouble, bilangan double
  3. s String
  4. b Blob.

Yang paling sering dipakai adalah parameter i dan s. jumlah parameter pertama tipe data ini harus sesuai dengan jumlah datanya. Perhatikan waktu insert butuh 2 parameter, update 3 parameter dan delete 1 paramater. Sekali lagi, tolong pahami bagian ini, tanpa anda memahami bagian ini, code anda tidak akan berjalan sebagaimana mestinya.

OK, sampai sini dulu. Selanjutnya akan saya bahas tutorial PHP dengan PDO? apa itu PDO? simplenya begini, sekarang anda pake MySQL, terus kalau si BOS minta pakai oracle, berapa baris kode yang harus anda ganti? temukan jawabannya di tutorial selanjutnya. Happy

Tutorial Lengkap Pemrograman PHP dan Database

php-logoBelajar pemrograman PHP memang gampang gampang susah. Gampangnya karena PHP sudah menyediakan banyak fitur termasuk koneksi database yang lengkap dan fungsi fungsi seperti mysql_query() atau mysql_fetch_array() adalah dua fungsi database yang paling sering kita temui di aplikasi PHP MySQL.

Walaupun fungsi PHP cukup lengkap untuk membuat aplikasi database, namun banyaknya jenis database yang berbeda juga memerlukan cara dan fungsi yang berbeda. Hal lain yang bikin ribet adalah perbedaan versi PHP serta fitur yang disertakan dalam seitap bundle PHP berbeda (misalkan antara XAMPP dan Wamp). Secara default bundle XAMPP atau sejenisnya juga hanya mengaktfikan dukungan ke satu database saja. Ditambah lagi level error reporting yagn berbeda beda juga membuat file php bisa berjalan lancar di satu server dan kadang error di server yang lain.

Masalah lain yang dihadapi bagi pemula di pHP adalah gaya koding PHP yang berbeda beda antar programer dan antar framework. Ini juga menyulitkan proses belajar bagi pemula. Hal ini belum ditambah lagi dengan kombinasi javacript dan jQuery kedalam aplikasi. Melihat permasalahan diatas, maka saya berencana membuat 11 tutorial yang terbagimenjadi dua bagian yaitu pemrograman database dengan PHP dan berbagai teknik pemrogramannya.

Teknik CRUD database di PHP

  1. Teknik CRUD php dengan MySQL
  2. Pemrograman PHP dengan MySQLi
  3. pemrograman database PHP dengan PDO
  4. Pemrograman database dengan ORM

Sementara itu, untuk teknik pemrogramannya adalah sebagai berikut

Teknik pemrograman di PHP

Teknik pemrograman struktural

Teknik ini mengacarkan teknik dasar pemrograman php yang sudah dilakukan selama tahun tahun. Teknik ini adalah teknik paling dasar dari PHP

Teknik pemrograman Prosedural

Teknik pemrograman dengan menyusun kode kedalam fungsi fungsi,  kemudian fungsi yang dibuat dipanggil di halaman yang membutuhkannnya. Teknik ini sedikit lebih baik daripada teknik struktural karena sudah mengenal prinsip guna ulang.

teknik pemrogaman OOP

Pemrograman berbasis Object. Teknik ini akan mengajarkan teknik membuat program PHP dengan menggunakan Class yang sangat berbeda dengan pendekatan struktural. OOP ini adalah basis dari semua library dan Framework PHP. Artinya, jika anda menguasai OOP maka mempelajari framework harusnya jauh lebih mudah.

teknik pemrograman MVC

MVC adalah model pemrograman yang memisahkan antara model (sumber data/struktur data), view( Tampilan/thema/visual) dan conroller( logika program). Jika anda memakai COdeIgniter, anda sudah memakai teknik ini.

Teknik pemrograman HMVC

Teknik ini adalah kelanjutan dari teknik MVC, pada teknik HMVC, modul dibuat dalam satu folder, berbeda dengan MVC murni yang justru meletakan kode program berdasarkan strukturnya , HMVC meletakan modul/komponen folder kedalam satu folder sehingga modul tersebut bisa dipakai di aplikasi lain dengan mudah.

Persiapan

Karena ini adalah pemrograman web,maka diharapkan anda sudah paham dengan HTML,CSS dan javascript. Selain itu diharapkan anda sudah menginstall XAMPP atau paket Apache, PHP dan MySQL.

Saya sendiri memakai OS Windows 8.1, XAMPP 1.8.3,editor Notepad++, IDE Aptana dan Interface aplikasi menggunakan twitter bootstrap 3. Namun demikian, anda tidak perlu sama persis seperti konfigurasi dikomputer saya. Jika script tidak berjalan, maka yang perlu anda perhatikan adalah konfigurasi php.ini. Materi konfigurasi php.ini bisa anda baca disini.