Edit Data di PHP dan MySQL: Panduan Lengkap dengan MySQLi & PDO

By | 12 October 2025

Setelah mempelajari cara menampilkan data dari database, menambah data (Create / Insert), langkah berikutnya adalah membuat fitur edit data di PHP dan MySQL agar pengguna dapat memperbarui informasi di tabel.

Fitur ini umum digunakan pada sistem manajemen data, misalnya:

  • Mengubah data produk di toko online

  • Memperbarui profil pengguna

  • Mengedit artikel di dashboard admin

Dalam tutorial ini, kita akan belajar dua versi:

  1. Menggunakan MySQLi

  2. Menggunakan PDO (PHP Data Objects)

Persiapan Database dan Tabel

Sebelum mulai, pastikan kamu sudah memiliki database. Misalnya, kita punya tabel bernama users seperti berikut:

CREATE TABLE users (
  id INT(11) AUTO_INCREMENT PRIMARY KEY,
  nama VARCHAR(100),
  email VARCHAR(100),
  alamat TEXT
);

Kita asumsikan data sudah ada di tabel ini, dan kita ingin mengedit salah satu baris datanya.

Struktur Folder

Buat folder seperti ini di dalam htdocs atau proyekmu:

edit_data/
├── config.php
├── edit.php
├── update.php

Versi 1: Mengedit Data dengan MySQLi

File: config.php

<?php
$koneksi = mysqli_connect("localhost", "root", "", "belajarphp");

// Cek koneksi
if (!$koneksi) {
    die("Koneksi gagal: " . mysqli_connect_error());
}
?>

File: edit.php

File ini akan menampilkan form edit berdasarkan ID yang dikirim melalui URL, misalnya:
edit.php?id=1

<?php
include 'config.php';

$id = $_GET['id'];
$query = mysqli_query($koneksi, "SELECT * FROM users WHERE id='$id'");
$data = mysqli_fetch_assoc($query);
?>

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Edit Data User</title>
</head>
<body>
  <h2>Edit Data User</h2>
  <form action="update.php" method="POST">
    <input type="hidden" name="id" value="<?= $data['id']; ?>">

    <label>Nama:</label><br>
    <input type="text" name="nama" value="<?= $data['nama']; ?>"><br><br>

    <label>Email:</label><br>
    <input type="email" name="email" value="<?= $data['email']; ?>"><br><br>

    <label>Alamat:</label><br>
    <textarea name="alamat"><?= $data['alamat']; ?></textarea><br><br>

    <button type="submit" name="update">Simpan Perubahan</button>
  </form>
</body>
</html>

File: update.php

<?php
include 'config.php';

if (isset($_POST['update'])) {
    $id     = $_POST['id'];
    $nama   = $_POST['nama'];
    $email  = $_POST['email'];
    $alamat = $_POST['alamat'];

    $query = "UPDATE users SET nama='$nama', email='$email', alamat='$alamat' WHERE id='$id'";
    $update = mysqli_query($koneksi, $query);

    if ($update) {
        echo "Data berhasil diperbarui! <a href='edit.php?id=$id'>Kembali</a>";
    } else {
        echo "Gagal memperbarui data: " . mysqli_error($koneksi);
    }
}
?>

Versi 2: Mengedit Data dengan PDO

File: config.php

<?php
try {
    $pdo = new PDO("mysql:host=localhost;dbname=belajarphp", "root", "");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Koneksi gagal: " . $e->getMessage());
}
?>

File: edit.php

<?php
include 'config.php';

$id = $_GET['id'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$id]);
$data = $stmt->fetch(PDO::FETCH_ASSOC);
?>

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Edit Data User (PDO)</title>
</head>
<body>
  <h2>Edit Data User</h2>
  <form action="update.php" method="POST">
    <input type="hidden" name="id" value="<?= $data['id']; ?>">

    <label>Nama:</label><br>
    <input type="text" name="nama" value="<?= $data['nama']; ?>"><br><br>

    <label>Email:</label><br>
    <input type="email" name="email" value="<?= $data['email']; ?>"><br><br>

    <label>Alamat:</label><br>
    <textarea name="alamat"><?= $data['alamat']; ?></textarea><br><br>

    <button type="submit" name="update">Simpan</button>
  </form>
</body>
</html>

File: update.php

<?php
include 'config.php';

if (isset($_POST['update'])) {
    $id     = $_POST['id'];
    $nama   = $_POST['nama'];
    $email  = $_POST['email'];
    $alamat = $_POST['alamat'];

    $stmt = $pdo->prepare("UPDATE users SET nama=?, email=?, alamat=? WHERE id=?");
    $update = $stmt->execute([$nama, $email, $alamat, $id]);

    if ($update) {
        echo "Data berhasil diperbarui! <a href='edit.php?id=$id'>Kembali</a>";
    } else {
        echo "Gagal memperbarui data.";
    }
}
?>

Penjelasan Singkat

Fitur MySQLi PDO
Tipe koneksi Prosedural / OOP OOP
Keamanan Cukup, bisa SQL Injection jika tidak hati-hati Aman dengan prepared statements
Portabilitas Hanya MySQL Banyak DB (MySQL, PostgreSQL, SQLite, dll)

Untuk proyek baru, PDO lebih direkomendasikan karena lebih fleksibel dan aman.

Tips Keamanan

  • Gunakan prepared statements untuk mencegah SQL Injection.

  • Lakukan validasi dan sanitasi input sebelum disimpan.

  • Jika di web publik, tambahkan CSRF token untuk form edit.

Kesimpulan

Pada artikel ini kamu telah belajar:

  • Cara membuat form edit data dengan PHP.

  • Implementasi update data di database menggunakan MySQLi dan PDO.

  • Tips keamanan untuk mencegah serangan SQL Injection.

Langkah berikutnya, kita akan belajar menghapus data dari database (DELETE) dengan aman dan terstruktur.