Dalam pengembangan aplikasi web, validasi data merupakan langkah penting untuk menjaga kualitas dan konsistensi database. Salah satu validasi yang wajib dilakukan adalah mencegah data duplikat sebelum disimpan ke dalam database. Artikel ini akan membahas cara melakukan validasi form di PHP agar data yang dimasukkan tidak sama atau sudah ada sebelumnya di database MySQLi.
Konsep Dasar Validasi Data
Untuk mencegah data duplikat, ada tiga langkah utama yang perlu dilakukan:
- Melakukan query ke database untuk mengecek data
- Menampilkan pesan error jika data sudah ada
- Menyimpan data jika belum ada
Contoh Implementasi PHP MySQLi
Berikut contoh sederhana validasi form:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nama = $_POST["nama"];
// Koneksi ke database
$conn = new mysqli("localhost", "user", "password", "database");
// Cek apakah data sudah ada
$sql = "SELECT * FROM tabel WHERE nama = '$nama'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "Nama sudah ada dalam database.";
} else {
// Insert data baru
$sql = "INSERT INTO tabel (nama) VALUES ('$nama')";
if ($conn->query($sql) === TRUE) {
echo "Data berhasil dimasukkan ke database.";
} else {
echo "Error: " . $conn->error;
}
}
$conn->close();
}
?>
Form Input HTML
<form action="form.php" method="post">
<input type="text" name="nama" placeholder="Masukkan nama">
<input type="submit" value="Submit">
</form>
Penjelasan Alur
Berikut alur kerja dari kode di atas:
- User mengisi form dan submit
- PHP menerima data menggunakan metode POST
- Sistem mengecek apakah data sudah ada di database
- Jika sudah ada → tampilkan pesan error
- Jika belum → data disimpan ke database
Kelebihan Validasi Ini
- Mencegah data ganda
- Menjaga kualitas database
- Menghindari konflik data
Tips Keamanan (WAJIB!)
Kode di atas masih sederhana, untuk produksi disarankan:
- Gunakan prepared statement (lebih aman)
- Validasi input pengguna
- Gunakan
htmlspecialchars()untuk output
Contoh Versi Lebih Aman (Prepared Statement)
$stmt = $conn->prepare("SELECT * FROM tabel WHERE nama = ?");
$stmt->bind_param("s", $nama);
$stmt->execute();
$result = $stmt->get_result();
Kesimpulan
Validasi form untuk mencegah data duplikat adalah langkah penting dalam pengembangan aplikasi web. Dengan melakukan pengecekan sebelum insert data, Anda dapat menjaga database tetap rapi, aman, dan bebas dari data ganda.