Membuat Crud PHP PDO

2 831

Dalam tutorial ini kita membuat contoh untuk melakukan operasi database Create, Read, Update dan Delete (CRUD) di PHP menggunakan koneksi PDO. Pada tutorial sebelumnya, kita sudah belajar tentang bagaimana melakukan database CRUD menggunakan MySQLi.

Dalam contoh ini, kami telah mengambil tabel posting untuk melakukan CRUD via PDO. Skrip SQL untuk tabel ini diberikan dengan mendownload source code. Kami membuat koneksi PDO dalam file yang umum dan menyertakan file ini dimanapun koneksi database diperlukan.

Membuat Koneksi PDO

Kode berikut menunjukkan cara membuat koneksi PDO di PHP.

<?php
	$database_username = 'root';
	$database_password = '';
	$pdo_conn = new PDO( 'mysql:host=localhost;dbname=belajar_crud_pdo', $database_username, $database_password );
?>

Buat Baris Baru di Tabel Basis Data

Kode HTML menunjukkan bentuk add dan script PHP yang akan dieksekusi untuk mendapatkan koneksi PDO untuk melakukan Create operation. Saat mengirimkan formulir ini, kolom akan ditambahkan di baris baru.

<?php
if(!empty($_POST["add_record"])) {
	require_once("db.php");
	$sql = "INSERT INTO posts ( post_title, description, post_at ) VALUES ( :post_title, :description, :post_at )";
	$pdo_statement = $pdo_conn->prepare( $sql );
		
	$result = $pdo_statement->execute( array( ':post_title'=>$_POST['post_title'], ':description'=>$_POST['description'], ':post_at'=>$_POST['post_at'] ) );
	if (!empty($result) ){
	  header('location:index.php');
	}
}
?>
<html>
<head>
<title>PHP PDO CRUD - Add New Record</title>
</head>
<body>
<div style="margin:20px 0px;text-align:right;"><a href="index.php" class="button_link">Back to List</a></div>
<div class="frm-add">
<h1 class="demo-form-heading">Add New Record</h1>
<form name="frmAdd" action="" method="POST">
  <div class="demo-form-row">
	  <label>Title: </label><br>
	  <input type="text" name="post_title" class="demo-form-field" required />
  </div>
  <div class="demo-form-row">
	  <label>Description: </label><br>
	  <textarea name="description" class="demo-form-field" rows="5" required ></textarea>
  </div>
  <div class="demo-form-row">
	  <label>Date: </label><br>
	  <input type="date" name="post_at" class="demo-form-field" required />
  </div>
  <div class="demo-form-row">
	  <input name="add_record" type="submit" value="Add" class="demo-form-submit">
  </div>
  </form>
</div> 
</body>
</html>

Read PHP PDO

Setelah membuat baris baru di tabel database, kita akan mengambil semua catatan melalui koneksi PDO dan memasukkannya ke dalam daftar halaman. Kode itu,

<?php
require_once("db.php");
?>
<html>
<head>
<title>PHP PDO CRUD</title>
<style>
body{width:615px;font-family:arial;letter-spacing:1px;line-height:20px;}
.tbl-qa{width: 100%;font-size:0.9em;background-color: #f5f5f5;}
.tbl-qa th.table-header {padding: 5px;text-align: left;padding:10px;}
.tbl-qa .table-row td {padding:10px;background-color: #FDFDFD;vertical-align:top;}
.button_link {color:#FFF;text-decoration:none; background-color:#428a8e;padding:10px;}
</style>
</head>
<body>
<?php	
	$pdo_statement = $pdo_conn->prepare("SELECT * FROM posts ORDER BY id DESC");
	$pdo_statement->execute();
	$result = $pdo_statement->fetchAll();
?>
<div style="text-align:right;margin:20px 0px;"><a href="add.php" class="button_link"><img src="crud-icon/add.png" title="Add New Record" style="vertical-align:bottom;" /> Create</a></div>
<table class="tbl-qa">
  <thead>
	<tr>
	  <th class="table-header" width="20%">Title</th>
	  <th class="table-header" width="40%">Description</th>
	  <th class="table-header" width="20%">Date</th>
	  <th class="table-header" width="5%">Actions</th>
	</tr>
  </thead>
  <tbody id="table-body">
	<?php
	if(!empty($result)) { 
		foreach($result as $row) {
	?>
	  <tr class="table-row">
		<td><?php echo $row["post_title"]; ?></td>
		<td><?php echo $row["description"]; ?></td>
		<td><?php echo $row["post_at"]; ?></td>
		<td><a class="ajax-action-links" href='edit.php?id=<?php echo $row['id']; ?>'><img src="crud-icon/edit.png" title="Edit" /></a> <a class="ajax-action-links" href='delete.php?id=<?php echo $row['id']; ?>'><img src="crud-icon/delete.png" title="Delete" /></a></td>
	  </tr>
    <?php
		}
	}
	?>
  </tbody>
</table>
</body>
</html>

Perbarui Baris Basis Data

Dalam bentuk update, kita mendapatkan nilai dari database untuk catatan tertentu dan mengisi nilai-nilai tersebut dalam kolom formulir. Kode menunjukkan permintaan update untuk dieksekusi dengan menggunakan koneksi PDO untuk melakukan update database.

<?php
require_once("db.php");
if(!empty($_POST["save_record"])) {
	$pdo_statement=$pdo_conn->prepare("update posts set post_title='" . $_POST[ 'post_title' ] . "', description='" . $_POST[ 'description' ]. "', post_at='" . $_POST[ 'post_at' ]. "' where id=" . $_GET["id"]);
	$result = $pdo_statement->execute();
	if($result) {
		header('location:index.php');
	}
}
$pdo_statement = $pdo_conn->prepare("SELECT * FROM posts where id=" . $_GET["id"]);
$pdo_statement->execute();
$result = $pdo_statement->fetchAll();
?>

Menghapus baris menggunakan PDO

Kode PHP berikut menunjukkan cara memecat query delete menggunakan koneksi PDO.

<?php
require_once("db.php");
$pdo_statement=$pdo_conn->prepare("delete from posts where id=" . $_GET['id']);
$pdo_statement->execute();
header('location:index.php');
?>

Itulah cara membuat CRUD dengan MySQLi Prepared Statement menggunakan PHP. Untuk download dan demo silahkan klik button dibawah.

Demo

Get real time updates directly on you device, subscribe now.

2 Comments
  1. […] Dalam contoh ini, saya membuat tabel karyawan di database untuk melakukan operasi CRUD. Kami menghubungkan database dan menyiapkan pernyataan untuk query INSERT, UPDATE, DELETE dan SELECT untuk melakukan CRUD. Kemudian, kita mengikat nilai ke parameter kueri jika diperlukan. Dalam tutorial sebelumnya, kita telah melihat tentang PHP CRUD menggunakan PDO. […]

  2. Awanama says

    syntax view nya mohon diganti warnanya atau kalo engga, gausah sekalian pasang syntax viewer.
    Utk bagian “->” nya ga keliatan sama sekali
    masa harus di select dulu text nya baru keliatan

Leave A Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.