Form Rekam Nama Pakai Petik

Untuk merekam nama yang mengandung tanda petik (seperti O’Connor) ke database MySQL, gunakan fungsi mysqli_real_escape_string atau prepared statement untuk mencegah error sintaks SQL.

Berikut adalah contoh lengkap file PHP yang berisi form HTML dan kode pemrosesannya:

php

<?php
// 1. Koneksi ke database MySQLi
$host = "localhost";
$user = "root";
$pass = "";
$db   = "nama_database";

$conn = new mysqli($host, $user, $pass, $db);

if ($conn->connect_error) {
    die("Koneksi gagal: " . $conn->connect_error);
}

// 2. Proses data saat form disubmit
$pesan = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Bersihkan input untuk mencegah SQL Injection & error tanda petik
    $nama = $conn->real_escape_string($_POST['nama']);

    // Query untuk memasukkan data
    $sql = "INSERT INTO tabel_nama (nama) VALUES ('$nama')";

    if ($conn->query($sql) === TRUE) {
        $pesan = "Data berhasil disimpan!";
    } else {
        $pesan = "Error: " . $sql . "<br>" . $conn->error;
    }
}
?>

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Input Nama dengan Petik</title>
</head>
<body>

    <h2>Form Input Nama</h2>

    <!-- Tampilkan pesan sukses/gagal -->
    <?php if($pesan != "") { echo "<p><strong>$pesan</strong></p>"; } ?>

    <!-- Form HTML -->
    <form action="" method="POST">
        <label for="nama">Nama:</label><br>
        <input type="text" id="nama" name="nama" placeholder="Contoh: O'Connor" required>
        <br><br>
        <button type="submit">Simpan</button>
    </form>

</body>
</html>

<?php
// Tutup koneksi
$conn->close();
?>

Penjelasan Penting:

  • real_escape_string: Berfungsi mengubah karakter khusus seperti tanda petik satu (') atau petik dua (") menjadi string biasa yang aman dibaca oleh database.
  • Atribut name: Pastikan tag input HTML memiliki atribut name="nama" agar datanya bisa terbaca oleh script PHP ($_POST).

Jika Anda ingin menyesuaikan form ini, beri tahu saya:

  • Apakah Anda ingin menambahkan kolom lain (seperti email atau alamat)?
  • Apakah Anda menggunakan sistem database spesifik (seperti tabel Users atau Member)?

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Scroll to Top