Basic PHP Data Object

PDO adalah singkatan dari PHP Data Objects. PDO adalah cara ramping yang konsisten untuk mengakses database. Ini berarti pengembang dapat menulis kode portabel jauh lebih mudah. PDO bukan lapisan abstraksi seperti PearDB. Baik kali ini kita akan belajar PDO dari awal sekali, dari mulai pengkoneksian dan cara kerjanya. Sebelum kita pergi kesana, terlebih dahulu anda saya persilahkan untuk membuat Database. Untuk tutorial ini saya akan beri database dengan nama parsinta, dan langsung saja kita akan buat table dengan nama users berdasarkan field berikut ini.

  ----------- --------------------------------------------
  id          int(11) | (Auto Increment) | Index Primary
  firstname   varchar(255)
  lastname    varchar(255)
  ----------- --------------------------------------------

Jika sudah, silahkan buat folder didalam htdocs direktori anda dengan nama learn_pdo, dan didalamnya silahkan buat 2 file berikut.

  • index.php
  • connection.php Setelah itu yang paling pertama kali kita lakukan adalah pengecekan driver yang ada pada server kita, caranya buka index.php dan ketikkan syntax berikut.
<?php

$drivers = PDO::getAvailableDrivers();
var_dump($drivers);

Silahkan lihat dibrowser apa - apa saja drivers yang diberika PDO kepada kita, jika saya lihat di server saya, saya hanya diberikan 2 drivers.

// array(2) { [0]=> string(5) "mysql" [1]=> string(6) "sqlite" }

Nah kita bisa gunakan drivers apa saja, dan untuk tutorial ini kita gunakan yang paling populer saja yang mana itu adalah mysql. Anda bisa baca - baca juga di http://php.net/manual/en/pdo.drivers.php jika anda ingin tau tentang PDO drivers. Karna ini bisa saja menambah referensi anda. Seperti yang saya bilang kita akan bekerja kepada yang satu paling terpopuler saja yi MySQL.

Yang pertama kita akan bahas adalah bagaimana cara mengkonesikanya, buka file connection.php dan type in.

<?php 

$db = new PDO("mysql:host=127.0.0.1;dbname=parsinta", "root", "");

dan pada index.php anda bisa sisipkan file connection tersebut.

<?php 

require 'connection.php';

Jika kita lihat dibrowser maka tidak ada akan terjadi apa kecuali anda tidak membuat database, dan juga jika anda memasukkan user dan password yang salah, jika semua baik baik saja, maka anda akan dihadapkan kepada blank screen. Jika anda ingin melihat bagaimana errorsnya, anda bisa sekarang robah dbname=parsinta jadi dbname=parsintax, sekarang lihat dibrowser. Tidak lain dan tidak bukan yang anda lihat adalah error yang tidak beraturan, artinya tidak bisa dibaca seperti Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [104.... Nah untuk mempersingkat error itu anda bisa menggunakan cara try and catch disini. Sehingga syntax nya seperti berikut.

<?php 

try {
    $db = new PDO("mysql:host=127.0.0.1;dbname=parsintaxx", "root", "");
} catch (PDOException $e) {
    die($e->getMessage());
}

Lihat PDO juga mempunyai function seperti getMessage(), tugas dari getMessage() itu hanya lah akan menampilkan error spesipik jika informasi dari koneksi anda bermasalah. Jika tidak, maka anda hanya akan mendapat blank screen. Sehingga jika anda lihat maka error nya hanya akan seperti SQLSTATE[HY000] [1049] Unknown database 'parsintax'. Hanya memberi error spesipik saja. Baik jika suda anda sudah melihat errornya, anda bisa kembali kan lagi nama database nya ke parsinta agar tidak terjadi error.

Jika sudah maka kita set all to go! Nah sekarang kita akan belajar bagaimana cara memasukkan data kedalam database. Seperti biasanya sql tidak akan luput dari yang namanya insert. Coba lihat syntax dibawah.

<?php 

require 'connection.php';

$firstname = "Irsyad";
$lastname = "Panjaitan";

$iQuery = $db->prepare("INSERT INTO users (firstname, lastname) VALUES (?,?)");
$iQuery->execute([ $firstname, $lastname ]);
header('location : index.php');

Setelah itu buka browser anda dan refresh, ganti isi variable first dan last dengan nama yang lain. Dan silahkan kembali refresh, agar kita mempunyai data yang cukup untuk kerja. Nah jika anda lihat saya hanya buat isinya yang ada didalam variable firstname & lastname. Karna hanya sekedar contoh saya rasa cukup tanpa harus kerja dengan banyak form. Anda lihat syntax $db->prepare(), itu kita gunakana jika ada yang ingin di eksekusi. Seperti yang anda lihat kita eksekusi firstname & lastname. Dan sekarang anda saya

Nah sesudah itu kita akan tampilkan datanya dengan cara perintah select, sangat tidak berbeda dengan perintah sql hanya penulisan yang berbeda akan membuat anda harus melihat benar - benar structurnya. Dibawah ini adalah cara untuk menampilkan data yang ada dalam table yang kita buat tadi yi users.

<?php
require 'connection.php';

$users = $db->query("SELECT * FROM users")->fetchAll(PDO::FETCH_OBJ);
foreach ($users as $user) {
    echo "{$user->firstname} {$user->lastname} <br>";
}

Sangat gampang bukan. Nah jika anda lihat disana kita tidak mempunyai statement prepare, karna pada query tersebut tidak ada yang perlu di eksekusi. Jadi untuk itu cukup kita gunakan statement query saja. Seperti biasa jika kita ingin menampilkan semua data yang ada kita akan gunakan foreach loop. Nah jika anda sudah mengerti cara menampilkan semua data yang ada di dalam table, bagaimana dengan menampilkan data secara spesipik. Itu sangat gampang sekali.

require 'connection.php';
$id = 1;

$query = $db->prepare("SELECT * FROM users WHERE id = ?");
$query->execute([ $id ]);
$user = $query->fetchObject();
echo "{$user->firstname} {$user->lastname}";

Nah itu cara kita untuk menampilkan spesipik otomatis itu akan menghasilkan user yang mempunyai id = 1. Jika anda ganti isi variable $id = 2 maka user yang tampil akan berdasarkan user ber id = 2. Sekarang kita akan hapus data yang ber id 2, pastikan anda mempunyai lebih dari 3 user agar kita bisa kerja seperti yang saya bilang tadi. Nah syntax untuk menghapus juga tidak luput dari DELETE dalam sql.

<?php 

require 'connection.php';
$id = 2;

$query = $db->prepare("DELETE FROM users WHERE id = ?");
$query->execute([ $id ]);

Bukannya bermain dengan PDO sangat gampang dan sangat singkat, dengan 2 bari / 1 baris kita berinteraksi dengan database. Nah PARSINTA sendiri juga sangat akan merekomendasikan anda untuk memakai teknik PDO dan bukan yang lainnya. Trimakasih sebelumnya telah membaca saya Irsyad sampai jumpa di tutorial berikutnya.



Generic placeholder image
By Irsyad A. Panjaitan
I am error

Comments

Please login to leave a comment!