Advertisement
  1. Code
  2. PHP

Memulai Dengan Operasi CRUD di Database PHP MySQL

Scroll to top
Read Time: 9 min

() translation by (you can also view the original English article)

Pada artikel ini, kita akan mengeksplorasi bagaimana Anda dapat menggunakan database MySQL untuk melakukan operasi CRUD (create, read, update, and delete) dengan PHP. Jika Anda ingin bekerja dengan konektivitas database di PHP, artikel ini adalah titik awal yang bagus.

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

Pada artikel ini, kita akan menjaga hal-hal sederhana dan mengeksplorasi cara menggunakan fungsi inti mysqli. Dalam artikel mendatang dari seri ini, kita akan mengeksplorasi beberapa cara lain untuk menangani konektivitas 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
  • cara mengambil record
  • cara menghapus record

Saya berasumsi bahwa Anda memiliki instalasi PHP dan MySQL yang berfungsi dan Anda mengetahui dasar-dasar MySQL. Selain itu, Anda harus memastikan bahwa ekstensi mysqli diaktifkan di instalasi PHP Anda, karena kita akan menggunakannya untuk melakukan operasi database dengan database MySQL.

Jika Anda tidak yakin tentang ekstensi mysqli, Anda dapat memeriksanya menggunakan fungsi phpinfo(). Dalam output phpinfo(), Anda dapat memeriksa apakah ada bagian berjudul mysqli. Anda juga harus melihat header Mysqli Support | enabled jika ekstensi mysqli diaktifkan.

Ada juga cara mudah untuk memeriksanya menggunakan antarmuka CLI. Anda dapat menjalankan perintah berikut untuk me-list semua ekstensi yang diaktifkan dengan pengaturan PHP Anda.

1
$php -m

Ia harus mencetak daftar ekstensi, dan jika mengandung kata kunci mysqli, ekstensi mysqli diaktifkan.

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

Cara Mengatur Koneksi Database

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

Ada dua cara Anda dapat menggunakan ekstensi mysqli, prosedural dan berorientasi objek, tetapi kita akan menggunakan cara prosedural dalam posting ini agar memudahkan Anda. Jika Anda ingin tahu tentang sintaks berorientasi objek, beri tahu saya pertanyaan Anda di bagian 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 Anda bekerja dengan server MySQL di sistem lokal Anda, Anda dapat menggunakan localhost atau 127.0.0.1.
  • MYSQL_USERNAME: Nama pengguna user MySQL Anda.
  • MYSQL_PASSWORD: Kata sandi pengguna MySQL Anda.
  • MYSQL_DATABASE: Database yang ingin Anda sambungkan.

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

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

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

Di bagian berikutnya, kita akan melihat bagaimana Anda 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, Anda selalu dapat melewati database dalam argumen keempat dari fungsi mysqli_connect itu sendiri. Tetapi ada juga cara lain Anda dapat melakukan ini jika Anda ingin mengubah database setelah Anda terhubung ke MySQL. Anda dapat menggunakan fungsi mysqli_select_dbuntuk 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
4
if (!$connection_obj) {
5
    echo "Error No: " . mysqli_connect_errno();
6
    echo "Error Description: " . mysqli_connect_error();
7
    exit;
8
}
9
10
mysqli_select_db($connection_obj, "{MYSQL_DATABASE}");
11
?>

Seperti yang Anda 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 Anda 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 Anda ingin mengikuti contoh yang dibahas dalam artikel ini, Anda harus membuat tabel MySQL berikut di database Anda. 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_ci;

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
4
if (!$connection_obj) {
5
    echo "Error No: " . mysqli_connect_errno();
6
    echo "Error Description: " . mysqli_connect_error();
7
    exit;
8
}
9
10
// initialize variables for the insert query

11
$name = 'John Smith';
12
$email = 'john.smith@yahoo.com';
13
$phone = '541-754-1234';
14
15
// prepare the insert query

16
$query = "INSERT INTO employee(`name`,`email`, `phone`)

17
VALUES ('". mysqli_real_escape_string($connection_obj, $name) ."','". mysqli_real_escape_string($connection_obj, $email) ."','". mysqli_real_escape_string($connection_obj, $phone) ."')";
18
19
// run the insert query

20
mysqli_query($connection_obj, $query);
21
22
// close the db connection

23
mysqli_close($connection_obj);
24
?>

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. Anda harus menggunakan fungsi ini ketika Anda berurusan dengan nilai string yang dikirimkan melalui variabel $_POST. Ini memastikan bahwa pengguna Anda tidak menyuntikkan kode berbahaya ke dalam kueri database Anda.

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_closeuntuk menutup koneksi yang aktif.

Cara Memperbarui Record

Di bagian sebelumnya, kita membahas bagaimana Anda bisa menyisipkan record baru di tabel MySQL. Di bagian ini, kita akan melihat bagaimana Anda 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
4
if (!$connection_obj) {
5
    echo "Error No: " . mysqli_connect_errno();
6
    echo "Error Description: " . mysqli_connect_error();
7
    exit;
8
}
9
10
// initialize variables for the insert query

11
$id = 1;
12
$phone = '333-555-4444';
13
14
// prepare the insert query

15
$query = "UPDATE employee SET `phone` = '". mysqli_real_escape_string($connection_obj, $phone) ."' WHERE `id` = '". (int) $id ."'";
16
17
// run the insert query

18
mysqli_query($connection_obj, $query);
19
20
// close the db connection

21
mysqli_close($connection_obj);
22
?>

Seperti yang dapat Anda 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
4
if (!$connection_obj) {
5
    echo "Error No: " . mysqli_connect_errno();
6
    echo "Error Description: " . mysqli_connect_error();
7
    exit;
8
}
9
10
// prepare the select query

11
$query = "SELECT * FROM employee";
12
13
// execute the select query

14
$result = mysqli_query($connection_obj, $query) or die(mysqli_error($connection_obj));
15
16
// run the select query

17
while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
18
    echo "ID:" . $row['id'] . "<br/>";
19
    echo "Name:" . $row['name'] . "<br/>";
20
    echo "Phone:" . $row['phone'] . "<br/>";
21
    echo "Email:" . $row['email'] . "<br/>";
22
    echo "<br/>";
23
}
24
25
// close the db connection

26
mysqli_close($connection_obj);
27
?>

Hal pertama yang perlu Anda 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 Anda dapat memberikan salah satu dari tiga nilai ini: MYSQLI_ASSOCMYSQLI_NUM, atau MYSQLI_BOTH. MYSQLI_ASSOC menunjukkan bahwa Anda ingin mengakses kolom dengan namanya, dan MYSQLI_NUMmenunjukkan bahwa Anda ingin mengakses kolom dengan nomor kolomnya.

Jika Anda melewatkan nilai MYSQLI_NUM dalam argumen kedua dari fungsi mysqli_fetch_array, Anda dapat 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 Anda ingin mengakses hanya nilai asosiatif, Anda dapat 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
4
if (!$connection_obj) {
5
    echo "Error No: " . mysqli_connect_errno();
6
    echo "Error Description: " . mysqli_connect_error();
7
    exit;
8
}
9
10
// initialize variables for the delete query

11
$id = 1;
12
13
// prepare the insert query

14
$query = "DELETE FROM employee WHERE `id` = '". (int) $id ."'";
15
16
// run the delete query

17
mysqli_query($connection_obj, $query);
18
19
// close the db connection

20
mysqli_close($connection_obj);
21
?>

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

Kesimpulan

Pada artikel ini, kita mengeksplorasi bagaimana Anda dapat menggunakan database MySQL dengan PHP. Artikel ini dimaksudkan untuk memberikan Anda 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 Anda menggunakan komentar di bawah ini.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.