Memasukkan Data ke Tabel Database MySQL
Sekarang kalian sudah mengerti cara membuat database dan tabel di MySQL. Dalam tutorial ini kalian akan belajar bagaimana cara menjalankan query SQL untuk memasukkan catatan ke dalam tabel.
Pernyataan INSERT INTO digunakan untuk menyisipkan baris baru dalam tabel database.
Mari kita membuat query SQL menggunakan pernyataan INSERT INTO dengan nilai-nilai yang sesuai, setelah itu kita akan menjalankan query insert ini dengan mengirimkannya ke fungsi PHP mysqli_query() untuk memasukkan data dalam tabel. Berikut ini contoh, yang menyisipkan baris baru ke tabel persons dengan menentukan nilai untuk bidang first_name, last_name, dan email.
<?php /* Attempt MySQL server connection. Assuming you are running MySQL server with default setting (user 'root' with no password) */ $link = mysqli_connect("localhost", "root", "", "demo"); // Check connection if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); } // Attempt insert query execution $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', 'peterparker@mail.com')"; if(mysqli_query($link, $sql)){ echo "Records inserted successfully."; } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); } // Close connection mysqli_close($link); ?>
Jika kalian ingat dari bab sebelumnya, bidang id ditandai dengan label AUTO_INCREMENT. Pengubah ini memberi tahu MySQL untuk secara otomatis memberikan nilai pada bidang ini jika nilai pada bidang ini belum kita tentukan, dengan menambah nilai sebelumnya sebesar 1.
Memasukkan Banyak Baris ke dalam Tabel
Kalian juga bisa menyisipkan banyak baris ke tabel dengan hanya satu query saja untuk memasukkannya sekaligus. Untuk melakukan ini, sertakan beberapa daftar nilai kolom dalam pernyataan INSERT INTO, di mana nilai kolom untuk setiap baris harus dimasukkan dalam tanda kurung dan dipisahkan dengan koma.
Mari kita masukkan beberapa baris lagi ke tabel persons, seperti ini:
<?php /* Attempt MySQL server connection. Assuming you are running MySQL server with default setting (user 'root' with no password) */ $link = mysqli_connect("localhost", "root", "", "demo"); // Check connection if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); } // Attempt insert query execution $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', 'johnrambo@mail.com'), ('Clark', 'Kent', 'clarkkent@mail.com'), ('John', 'Carter', 'johncarter@mail.com'), ('Harry', 'Potter', 'harrypotter@mail.com')"; if(mysqli_query($link, $sql)){ echo "Records added successfully."; } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); } // Close connection mysqli_close($link); ?>
Sekarang, buka phpMyAdmin ( http://localhost/phpmyadmin/ ) dan periksa data tabel persons di dalam basis data demo. kalian akan menemukan nilai untuk kolom id ditugaskan secara otomatis dengan menambah nilai id sebelumnya dengan 1.
Catatan: Sejumlah jeda baris dapat terjadi dalam pernyataan SQL, asalkan setiap jeda baris tidak memutuskan kata kunci, nilai, expression, dll.
Langkah 1: Membuat Form HTML
Berikut ini merupakan formulir HTML sederhana yang memiliki tiga bidang teks <input> dan tombol submit.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Add Record Form</title> </head> <body> <form action="insert.php" method="post"> <p> <label for="firstName">First Name:</label> <input type="text" name="first_name" id="firstName"> </p> <p> <label for="lastName">Last Name:</label> <input type="text" name="last_name" id="lastName"> </p> <p> <label for="emailAddress">Email Address:</label> <input type="text" name="email" id="emailAddress"> </p> <input type="submit" value="Submit"> </form> </body> </html>
Langkah 2: Mengambil dan Memasukkan Form Data
Ketika seorang pengguna mengklik tombol kirim (submit) dari form add record HTML, pada contoh di atas, form data dikirim ke file ‘insert.php’. File ‘insert.php’ terhubung ke server database MySQL, mengambil bidang formulir menggunakan variabel PHP $_REQUEST dan akhirnya menjalankan permintaan memasukkan untuk menambahkan catatan. Berikut adalah kode lengkap file ‘insert.php’ kita:
<?php /* Attempt MySQL server connection. Assuming you are running MySQL server with default setting (user 'root' with no password) */ $link = mysqli_connect("localhost", "root", "", "demo"); // Check connection if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); } // Escape user inputs for security $first_name = mysqli_real_escape_string($link, $_REQUEST['first_name']); $last_name = mysqli_real_escape_string($link, $_REQUEST['last_name']); $email = mysqli_real_escape_string($link, $_REQUEST['email']); // Attempt insert query execution $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; if(mysqli_query($link, $sql)){ echo "Records added successfully."; } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); } // Close connection mysqli_close($link); ?>
Dalam bab selanjutnya, kita akan memperluas contoh insert query ini dan melangkah lebih jauh dengan mengimplementasikan pernyataan yang disiapkan untuk keamanan dan kinerja yang lebih baik.
Catatan: Fungsi mysqli_real_escape_string() lolos dari karakter khusus dalam string dan membuat string SQL legal untuk memberikan keamanan terhadap injeksi SQL.
Ini adalah contoh yang sangat mendasar dari memasukkan data formulir dalam tabel database MySQL. Kalian dapat memperluas contoh ini dan membuatnya lebih interaktif dengan menambahkan validasi ke input pengguna sebelum memasukkannya ke tabel database. Silakan periksa tutorial tentang validasi formulir PHP untuk mempelajari lebih lanjut tentang sanitizing dan validating user input menggunakan PHP.