lawang code

lawang Code


Tanyakan kode disini

Koneksi PHP Menggunakan PDO

oleh Mad Scientist 3 tahun yang lalu

Hingga saat ini, penulis masih menjumpai tutorial, buku atau materi mysql_query untuk operasi basis data di PHP. Padahal, PHP Data Object (PDO) sudah ada sejak tahun 2004. Dan mysql_query tidak lagi di-support semenjak PHP 5.4.

Kelebihan PDO atara lain adalah kemampuan untuk database transaction, support berbagai database misalnya MS SQL, Oracle DB, Firebird, PostgreSQL, MySQL, SQLite, dll. PDO juga lebih aman terhadap serangan SQL Injection, karena PDO menggunakan Prepared Statement.

Apa PDO sulit?

Tidak. Mungkin dosen, penulis buku maupun penulis tutorial ini belum mencoba PDO. Ini contoh penggunaanya:

  1. Membuka koneksi database:

    try {
        $dsn = 'mysql:host=localhost;dbname=databaseku';
        $db_user = 'root';
        $db_password = '';
        $db = new PDO($dsn, $db_user, $db_password);
    }
    catch(Exception $e) {
        die($e->getMessage());
    }    
    
  2. Operasi Insert

    $db->beginTransaction();
    $sql = "insert into barang(kode, nama, harga, discontinue) 
               values(:kode, :nama, :harga, :discontinue)";
    $st = $db->prepare($sql); //Statement
    $st->bindValue(':kode', $_POST['kode'], PDO::PARAM_STR);
    $st->bindValue(':nama', $_POST['nama'], PDO::PARAM_STR);
    $st->bindValue(':harga', $_POST['harga'], PDO::PARAM_INT);
    $st->bindValue(':discontinue', false, PDO::PARAM_BOOL);
    
    try {
        $st->execute();
        $db->commit();  //Commit perubahan data
        echo 'Record #' . $db->lastInsertId() . ' sukses ditambahkan';
    }
    catch(PDOException $e) {
        $db->rollback();
        echo 'Error :'. $e->getMessage();
    }
    
  3. Operasi Select

    $sql = "select * from barang 
          where harga >= :harga and discontinue = :discontinue";
    $st = $db->prepare($sql);
    $st->bindValue(':harga', $_POST['harga'], PDO::PARAM_INT);
    $st->bindValue(':discontinue', $_POST['discontinue'], PDO::PARAM_BOOL);
    
    try {
        $result = $st->execute(PDO::FETCH_CLASS);
        foreach ($result as $barang) {
            echo "<p>Kode: ". $barang->kode ."<br />";
            echo "Nama : ". $barang->nama ."</p><hr />";
        }
    }
    catch(PDOException $e) {
        echo 'Error :'. $e->getMessage();
    }
    
  4. Operasi Update

    $db->beginTransaction();
    $sql = "update from barang 
        set nama = :nama, harga = :harga, discontinue = :discontinue
        where kode = :kode";
    $st = $db->prepare($sql);
    $st->bindValue(':nama', $_POST['nama'], PDO::PARAM_STR);
    $st->bindValue(':harga', $_POST['harga'], PDO::PARAM_INT);
    $st->bindValue(':discontinue', $_POST['discontinue'], PDO::PARAM_BOOL);
    $st->bindValue(':kode', $_POST['kode'], PDO::PARAM_STR);
    
    try {
        $st->execute();
       $rows = $st->rowCount();
        if ($rows) {
            $db->commit();
            echo $rows. ' record berhasil di-update';
        }
        else {
            echo 'Gagal update';
            $db->rollback();
        }
    }
    catch(PDOException $e) {
        echo 'Error : ' . $e->getMessage();
        $db->rollback();
    }
    
  5. Operasi delete

    $db->beginTransaction();
    $sql = "delete from barang where kode = :kode";
    $st = $db->prepare($sql);
    $st->bindValue(':kode', $_GET['kode'], PDO::PARAM_STR);
    
    try {
        $st->execute();
        $rows = $st->rowCount();
        if ($rows) {
            $db->commit();
            echo $rows . ' record berhasil dihapus';
        }
        else {
            echo 'Gagal hapus';
            $db->rollback();
        }
    }
    catch(PDOException $e) {
        echo 'Error : ' . $e->getMessage();
        $db->rollback();
    }
    

Iya, kode Anda jadi lebih panjang, tetapi lebih aman dan bisa terkoneksi ke database lain selain MySQL. Selamat mencoba.

Sumber: http://php.net/manual/en/book.pdo.php

pdo php tutorial
Anda harus login terlebih dahulu untuk memberikan komentar

Recent Tag

X 4
X 6
X 1
X 21
X 3
X 1
X 164
X 1
X 2

Bantuan

Help

Feedback

Help