Memulai Operasi CRUD di Database PHP MySQL Untuk Pemula




Pada artikel kali ini, kita akan mengeksplorasi bagaimana kalian bisa menggunakan database MySQL untuk melakukan operasi CRUD (Create, Read, Update, dan Delete) dengan PHP. Jika kalian ingin bekerja dengan konektivitas database di PHP, artikel ini adalah titik awal yang bagus.

Jika kalian  baru memulai atau baru berkenalan dengan PHP, kalian mungkin menyadari bahwa konektivitas database adalah fitur penting yang perlu kalian ketahui cepat atau lambat. Dalam kebanyakan kasus, database adalah tulang punggung aplikasi web apa pun dan database menyimpan data aplikasi tersebut. Jadi, sebagai developer PHP, kalian harus tahu cara menangani operasi database.

Pada artikel ini, kita akan menjaga hal-hal sederhana dan mengeksplorasi cara menggunakan fungsi inti mysqli. Dalam artikel selanjutnya dari seri ini, kita akan mengeksplorasi beberapa cara lain untuk menangani konektivitas database.

 

Baca Juga : Alasan Mengapa Kalian Harus Menggunakan PHP PDO untuk Akses Database
 

Hari ini, kita akan membahas dasar-dasar konektivitas database dalam PHP, dan kita akan menggunakan database MySQL sebagai database kita. Mari kita lihat sekilas apa yang akan kita bahas di artikel ini:


  • cara mengatur koneksi database
  • cara memilih database
  • cara memasukkan dan memperbarui record data
  • cara mengambil record data
  • cara menghapus record data

Saya berasumsi bahwa kalian sudah menginstall PHP dan MySQL yang berfungsi dan kalian mengetahui dasar-dasar MySQL. Selain itu, kalian harus memastikan bahwa ekstensi mysqli diaktifkan di instalasi PHP kalian, karena kita akan menggunakannya untuk melakukan operasi database dengan database MySQL.
 
Jika kalian tidak yakin tentang ekstensi mysqli, kalian dapat memeriksanya menggunakan fungsi phpinfo(). Dalam output phpinfo(), kalian dapat memeriksa apakah ada bagian berjudul mysqli. kalian juga harus melihat header Mysqli Support | enabled jika ekstensi mysqli diaktifkan.

Ada juga cara mudah untuk memeriksanya menggunakan CLI seperti CMD ataupun Git Bash. kalian dapat menjalankan perintah berikut untuk me-list semua ekstensi yang diaktifkan dengan pengaturan PHP kalian.

1:  $php -m  

Seharusnya output yang keluar adalah daftar ekstensi, dan jika mengandung kata kunci (keyword) mysqli, ekstensi mysqli itu sendiri sudah diaktifkan atau aktif.

Sekarang kita sudah siap, mari kita mulai membuat koneksi database.

Cara Mengatur Koneksi Database

Di bagian ini, kita akan membahas bagaimana kalian dapat membuat koneksi database menggunakan ekstensi mysqli.

Ada dua cara kalian bisa menggunakan ekstensi mysqli, prosedural dan berorientasi objek, tetapi kita akan menggunakan cara prosedural dalam posting ini agar memudahkan kalian memahami inti dari artikel ini. Jika kalian ingin tahu tentang sintaks berorientasi objek, beri tahu saya pertanyaan kslisn di kolom komentar dan saya akan dengan senang hati menjawabnya.

Pertama, mari kita lihat sintaks fungsi mysqli_connect, yang digunakan untuk mengatur koneksi dengan back-end MySQL.

1:  <?php  
2:  $connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}", "{MYSQL_DATABASE}");  
3:  ?>  

Fungsi mysqli_connect mengambil empat argumen dan mengembalikan objek koneksi setelah koneksi berhasil. Mari kita membahas setiap argumen:

  • MYSQL_HOSTNAME: Ini harus diganti dengan nama host atau alamat IP server MySQL. Jika kalian bekerja dengan server MySQL di localhost kalian, kalian bisa menggunakan localhost atau 127.0.0.1.
  • MYSQL_USERNAME: Nama pengguna user MySQL kalian, untuk default biasanya "root".
  • MYSQL_PASSWORD: Kata sandi pengguna MySQL kalian, untuk default biasanya kosong "".
  • MYSQL_DATABASE: Database yang ingin kalian sambungkan.

Setelah koneksi berhasi, $connection_obj berisi objek koneksi. Dengan ini, kalian siap menjalankan kueri terhadap database yang disediakan untuk argumen MYSQL_DATABASE.

Di sisi lain, jika koneksi tidak berhasil, kita dapat men-debug seperti yang ditunjukkan pada cuplikan kode berikut:

1:  <?php  
2:  $connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}", "{MYSQL_DATABASE}");  
3:  if (!$connection_obj) {  
4:    echo "Error No: " . mysqli_connect_errno();  
5:    echo "Error Description: " . mysqli_connect_error();  
6:    exit;  
7:  }  
8:  ?>  

Di bagian berikutnya, kita akan melihat bagaimana kalian dapat memilih database tertentu menggunakan objek koneksi.

Cara Memilih Database

Di bagian sebelumnya, kita membahas cara mengatur koneksi database menggunakan fungsi mysqli_connect. Di bagian ini, kita akan melihat cara memilih database setelah koneksi MySQL berhasil.

Tentu saja, seperti yang telah kita lihat, kalian selalu bisa melewati database dalam argumen keempat dari fungsi mysqli_connect itu sendiri. Tetapi ada juga cara lain, kalian bisa melakukan ini jika kalian ingin mengubah database setelah kalian terhubung ke MySQL. kalian bisa menggunakan fungsi mysqli_select_db untuk memilih database yang akan digunakan.

Mari kita merevisi contoh yang dibahas pada bagian sebelumnya untuk melihat bagaimana itu bisa bekerja.

1:  <?php  
2:  $connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}");  
3:  if (!$connection_obj) {  
4:    echo "Error No: " . mysqli_connect_errno();  
5:    echo "Error Description: " . mysqli_connect_error();  
6:    exit;  
7:  }  
8:  mysqli_select_db($connection_obj, "{MYSQL_DATABASE}");  
9:  ?>  

Seperti yang kalian lihat, kita hanya melewati tiga argumen dalam fungsi mysqli_connect, dan itu akan memberi kita koneksi database yang sukses. Alih-alih meneruskan database dalam argumen keempat, kita memilih database menggunakan fungsi mysqli_select_db.

Fungsi mysqli_select_db mengambil dua argumen: objek koneksi dan database yang ingin kalian sambungkan.

Cara Membuat (Insert) dan Update Record

Di bagian sebelumnya, kita membahas cara mengatur koneksi MySQL dan memilih database untuk digunakan. Sekarang, kita akan melihat bagaimana menjalankan berbagai jenis kueri terhadap database yang dipilih. Pertama, mari kita lihat cara memasukkan dan memperbarui record.

Jika kalian ingin mengikuti contoh yang dibahas dalam artikel ini, kalian harus membuat contoh tabel MySQL berikut di database kalian. Ini tabel yang akan kita gunakan dalam semua contoh mulai dari sekarang.

1:  CREATE TABLE `employee` (  
2:   `id` int(11) NOT NULL AUTO_INCREMENT,  
3:   `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,  
4:   `email` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,  
5:   `phone` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,  
6:   PRIMARY KEY (`id`)  
7:  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_  

Menjalankan perintah di atas dalam database MySQL, Anda harus membuat tabel employee.

Cara Membuat Record

Untuk mempermudah, kita akan menginisialisasi nilai yang perlu dimasukkan ke tabel employee di awal skrip. 

Namun, dalam sebagian besar kasus, ini akan datang dari input pengguna dalam variabel $_POST yang dikirimkan menggunakan formulir.

1:  <?php  
2:  $connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}", "{MYSQL_DATABASE}");  
3:  if (!$connection_obj) {  
4:    echo "Error No: " . mysqli_connect_errno();  
5:    echo "Error Description: " . mysqli_connect_error();  
6:    exit;  
7:  }  
8:  // initialize variables for the insert query  
9:  $name = 'Dayat eMJe';  
10:  $email = 'dayatbro71@gmail.com';  
11:  $phone = '+62';  
12:  // prepare the insert query  
13:  $query = "INSERT INTO employee(`name`,`email`, `phone`)  
14:  VALUES ('". mysqli_real_escape_string($connection_obj, $name) ."','". mysqli_real_escape_string($connection_obj, $email) ."','". mysqli_real_escape_string($connection_obj, $phone) ."')";  
15:  // run the insert query  
16:  mysqli_query($connection_obj, $query);  
17:  // close the db connection  
18:  mysqli_close($connection_obj);  
19:  ?>  

Dalam skrip di atas, kita pertama-tama menginisialisasi variabel yang akan kita gunakan dalam kueri Insert. Selanjutnya, kita telah menyiapkan kueri inset dan menetapkannya ke variabel $query.

Penting untuk dicatat bahwa kita telah menggunakan fungsi mysqli_real_escape_string untuk keluar dari nilai string yang akan kita gunakan dalam kueri insert.

Kalian harus menggunakan fungsi ini ketika kalian berurusan dengan nilai string yang dikirimkan melalui variabel $_POST. Ini memastikan bahwa pengguna kalian tidak menyuntikkan kode berbahaya (inject malicious code) ke dalam kueri database kalian.

Akhirnya, kita menjalankan kueri insert menggunakan fungsi mysqli_query. Fungsi mysqli_query digunakan untuk menjalankan kueri terhadap database aktif. Untuk menyelesaikannya, kita menggunakan fungsi mysqli_close untuk menutup koneksi yang aktif.

Cara Memperbarui Record

Di bagian sebelumnya, kita membahas bagaimana kalian bisa menyisipkan record baru di tabel MySQL. Di bagian ini, kita akan melihat bagaimana kalian bisa memperbarui record yang sudah ada dalam tabel.

Saya berasumsi bahwa record sudah ada di tabel employee, dan id dari record itu adalah 1. Dalam contoh berikut, kita akan memperbarui record yang memiliki nilai 1 di kolom id.

1:  <?php  
2:  $connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}", "{MYSQL_DATABASE}");  
3:  if (!$connection_obj) {  
4:    echo "Error No: " . mysqli_connect_errno();  
5:    echo "Error Description: " . mysqli_connect_error();  
6:    exit;  
7:  }  
8:  // initialize variables for the insert query  
9:  $id = 1;  
10:  $phone = '+62 - 6969  - 696';  
11:  // prepare the insert query  
12:  $query = "UPDATE employee SET `phone` = '". mysqli_real_escape_string($connection_obj, $phone) ."' WHERE `id` = '". (int) $id ."'";  
13:  // run the insert query  
14:  mysqli_query($connection_obj, $query);  
15:  // close the db connection  
16:  mysqli_close($connection_obj);  
17:  ?>  

Seperti yang dapat kalian lihat dalam contoh di atas, kita ingin memperbarui kolom phone dari tabel employee di mana id adalah 1. Ini sangat mirip dengan kueri insert, kecuali kita menggunakan UPDATE bukan INSERT.

Cara Mengambil Record

Sejauh ini, kita telah membahas cara menyisipkan dan memperbarui record dalam tabel MySQL. Di bagian ini, kita akan melihat cara mengambil (fetch) record dari tabel MySQL.

Lihatlah contoh berikut.

1:  <?php  
2:  $connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}", "{MYSQL_DATABASE}");  
3:  if (!$connection_obj) {  
4:    echo "Error No: " . mysqli_connect_errno();  
5:    echo "Error Description: " . mysqli_connect_error();  
6:    exit;  
7:  }  
8:  // prepare the select query  
9:  $query = "SELECT * FROM employee";  
10:  // execute the select query  
11:  $result = mysqli_query($connection_obj, $query) or die(mysqli_error($connection_obj));  
12:  // run the select query  
13:  while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {  
14:    echo "ID:" . $row['id'] . "<br/>";  
15:    echo "Name:" . $row['name'] . "<br/>";  
16:    echo "Phone:" . $row['phone'] . "<br/>";  
17:    echo "Email:" . $row['email'] . "<br/>";  
18:    echo "<br/>";  
19:  }  
20:  // close the db connection  
21:  mysqli_close($connection_obj);  
22:  ?>  

Hal pertama yang perlu kalian lakukan untuk mengambil record dari database adalah dengan menjalankan kueri pemilihan menggunakan fungsi mysqli_query

Setelah berhasil mengeksekusi kueri pemilihan, fungsi mysqli_query mengembalikan objek mysqli result, dan itulah yang kita simpan dalam variabel $result di atas.

Selanjutnya, kita mengulangi set hasil menggunakan fungsi mysqli_fetch_array dalam loop sementara. Fungsi mysqli_fetch_array mengambil satu baris sekaligus dari set hasil mysqli.

Fungsi mysqli_fetch_array mengambil dua argumen : objek hasil dan tipe hasil. Jenis hasil menunjukkan jenis array apa yang akan dikembalikan dari fungsi mysqli_fetch_array

Ini bisa berupa angka, asosiatif, atau keduanya. Ini adalah argumen opsional, dan kalian bisa memberikan salah satu dari tiga nilai ini: : MYSQLI_ASSOC, MYSQLI_NUM, atau MYSQLI_BOTH

MYSQLI_ASSOC menunjukkan bahwa kalian ingin mengakses kolom dengan namanya, dan MYSQLI_NUM menunjukkan bahwa kalian ingin mengakses kolom dengan nomor kolomnya.

Jika kalian melewatkan nilai MYSQLI_NUM dalam argumen kedua dari fungsi mysqli_fetch_array, kalian bisa  mengakses kolom sebagai $row[0], $row[1], dan seterusnya. 

Dalam kasus ini, kita telah melewati nilai MYSQLI_BOTH, sehingga kita dapat mengakses kolom dengan dua cara. Jika kalian ingin mengakses hanya nilai asosiatif, kalian bisa menggunakan fungsi mysqli_fetch_assoc sebagai gantinya.

Di bagian berikutnya dan yang terakhir, kita akan melihat cara menghapus record dari database.

Cara Menghapus Record

Di bagian ini, kita akan melihat cara menghapus record dari database.

Lihatlah contoh berikut.

1:  <?php  
2:  $connection_obj = mysqli_connect("{MYSQL_HOSTNAME}", "{MYSQL_USERNAME}", "{MYSQL_PASSWORD}", "{MYSQL_DATABASE}");  
3:  if (!$connection_obj) {  
4:    echo "Error No: " . mysqli_connect_errno();  
5:    echo "Error Description: " . mysqli_connect_error();  
6:    exit;  
7:  }  
8:  // initialize variables for the delete query  
9:  $id = 1;  
10:  // prepare the insert query  
11:  $query = "DELETE FROM employee WHERE `id` = '". (int) $id ."'";  
12:  // run the delete query  
13:  mysqli_query($connection_obj, $query);  
14:  // close the db connection  
15:  mysqli_close($connection_obj);  
16:  ?>  

Seperti yang kalian lihat, itu berfungsi hampir sama dengan memasukkan dan memperbarui kueri. Fungsi mysqli_query mengeksekusi query DELETE, dan yang akhirnya menghapus record dari tabel employee.

Kesimpulan

Pada artikel ini, kita mengeksplorasi bagaimana kalian bisa menggunakan database MySQL dengan PHP. 

Artikel ini dimaksudkan untuk memberikan kalian pengetahuan dasar tentang konektivitas database MySQL di PHP untuk pemula. Kita melihat cara beralih dari menyiapkan koneksi database ke mengeksekusi berbagai jenis kueri.

Jangan ragu untuk mengirimkan tanggapan dan pertanyaan kalian menggunakan kolom komentar di bawah ini. See You Next Time :)