PHP MySQL Insert: Menyimpan Data ke Database

Setelah tabel siap, saatnya mengisinya dengan data. Proses menyimpan data baru ke tabel disebut insert data MySQL, menggunakan perintah INSERT INTO. Panduan ini menunjukkan cara melakukannya dengan benar dan aman.

Insert Sederhana

Cara paling dasar adalah menuliskan perintah INSERT langsung:

<?php
$sql = "INSERT INTO pengguna (nama, email)
        VALUES ('Budi', 'budi@contoh.com')";

if ($koneksi->query($sql)) {
    echo "Data berhasil ditambahkan";
}
?>

Namun, cara ini berbahaya jika nilainya berasal dari input pengguna, karena rentan terhadap serangan SQL injection.

Insert dengan Prepared Statement (Direkomendasikan)

Cara yang aman adalah memakai prepared statement, yang memisahkan perintah SQL dari data:

<?php
$stmt = $koneksi->prepare("INSERT INTO pengguna (nama, email) VALUES (?, ?)");
$stmt->bind_param("ss", $nama, $email);

$nama  = "Budi";
$email = "budi@contoh.com";
$stmt->execute();

echo "Data tersimpan dengan aman";
?>

Memahami bind_param

Huruf pada bind_param menyatakan tipe data setiap nilai: s (string), i (integer), d (double). Jadi "ss" berarti dua nilai bertipe string, sedangkan "si" berarti string lalu integer.

Kenapa Prepared Statement Penting?

Bayangkan pengguna mengetik nama ' ; DROP TABLE pengguna; --. Pada insert biasa, ini bisa menghapus seluruh tabel Anda! Prepared statement mencegahnya karena data tidak pernah dianggap sebagai bagian dari perintah SQL. Inilah alasan mengapa teknik ini wajib digunakan.

Menyimpan Banyak Data Sekaligus

Untuk memasukkan banyak baris, jalankan execute() berulang dengan nilai berbeda tanpa perlu prepare ulang.

Kesimpulan

Saat melakukan insert data MySQL yang melibatkan input pengguna, selalu gunakan prepared statement. Kebiasaan ini adalah salah satu langkah keamanan terpenting dalam pengembangan aplikasi database.

Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

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