Setelah Anda berhasil membuat koneksi, langkah selanjutnya adalah menjalankan perintah SQL (query) untuk mengambil, menambah, atau mengubah data.
Dalam metode OOP, hasil query juga diperlakukan sebagai sebuah objek. Berikut adalah dua cara yang paling umum digunakan:
1. Cara Standar (Query Langsung)
Cara ini cocok untuk query sederhana yang tidak melibatkan data dari input user (untuk menghindari risiko keamanan).
<?php
require 'koneksi.php'; // Mengambil variabel $conn dari file sebelumnya
$sql = "SELECT id, nama, email FROM pengguna";
$result = $conn->query($sql);
// Memeriksa apakah ada data yang ditemukan
if ($result->num_rows > 0) {
// Loop melalui setiap baris data
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"] . " - Nama: " . $row["nama"] . " (" . $row["email"] . ")<br>";
}
} else {
echo "0 hasil ditemukan.";
}
// Menutup hasil untuk menghemat memori
$result->free();
?>
2. Cara Aman (Prepared Statements)
Sangat disarankan jika query Anda melibatkan input dari user (seperti form login atau pencarian) untuk mencegah SQL Injection.
<?php
require 'koneksi.php';
$id_cari = 1; // Contoh input user
// 1. Siapkan template query dengan placeholder (?)
$stmt = $conn->prepare("SELECT nama, email FROM pengguna WHERE id = ?");
// 2. Hubungkan variabel ke placeholder ("i" berarti integer)
$stmt->bind_param("i", $id_cari);
// 3. Jalankan query
$stmt->execute();
// 4. Ambil hasilnya
$result = $stmt->get_result();
$user = $result->fetch_assoc();
if ($user) {
echo "Nama Pengguna: " . $user['nama'];
} else {
echo "User tidak ditemukan.";
}
$stmt->close();
?>
Penjelasan Istilah Penting
* $conn->query(): Mengirimkan perintah SQL langsung ke database.
* $result->num_rows: Properti yang menyimpan jumlah baris yang dihasilkan oleh query.
* $result->fetch_assoc(): Mengambil satu baris data dan mengubahnya menjadi Array Asosiatif (nama kolom menjadi kunci array).
* bind_param(): Mengikat variabel ke query. Huruf "i" berarti integer, "s" untuk string, "d" untuk double, dan "b" untuk blob. Ini adalah benteng pertahanan utama melawan hacker.
Apa yang ingin Anda pelajari berikutnya?
Apakah Anda ingin saya bantu membuatkan file CRUD lengkap (Create, Read, Update, Delete) yang sudah rapi menggunakan sistem OOP ini?
Desember 17, 2025



0 komentar:
Posting Komentar