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 atributname="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)?
