Pernyataan Terpraproses dan Pengikatan
Gunakan prepare, bindParam, dan execute untuk mencegah injeksi SQL.
Pernyataan Terpraproses dan Pengikatan adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Mengapa Menggunakan Pernyataan Siap Pakai?
Pernyataan siap pakai memisahkan struktur SQL dari data. Masukan pengguna selalu diperlakukan sebagai nilai—tidak pernah sebagai kode SQL—sehingga injeksi SQL menjadi mustahil.
prepare() + execute()
Alur dasar: siapkan dengan penanda tempat, lalu jalankan dengan nilai-nilainya.
<?php
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$_POST["email"]]);
$user = $stmt->fetch();Penanda Tempat Bernama
Gunakan penanda tempat bernama (:name) agar lebih jelas, terutama saat nilai yang sama muncul beberapa kali.
<?php
$stmt = $pdo->prepare(
"INSERT INTO users (name, email) VALUES (:name, :email)"
);
$stmt->execute([':name' => "Alice", ':email' => "alice@example.com"]);bindParam vs bindValue
bindParam mengikat variabel berdasarkan referensi—nilainya dibaca saat eksekusi. bindValue langsung mengikat nilai.
<?php
$name = "Bob";
$stmt = $pdo->prepare("INSERT INTO users (name) VALUES (:name)");
$stmt->bindParam(":name", $name);
$name = "Carol";
$stmt->execute(); // inserts "Carol"Contoh bindValue
Gunakan bindValue saat Anda ingin menetapkan nilai pada waktu pengikatan.
<?php
$stmt = $pdo->prepare("SELECT * FROM products WHERE price < :max");
$stmt->bindValue(":max", 50.00, PDO::PARAM_INT);
$stmt->execute();Konstanta Jenis
Parameter ketiga yang bersifat opsional menentukan jenis data: PDO::PARAM_INT, PDO::PARAM_STR, PDO::PARAM_BOOL, PDO::PARAM_NULL.
Menjalankan Ulang Pernyataan
Pernyataan siap pakai dapat dijalankan beberapa kali—kueri dikompilasi sekali di server.
<?php
$stmt = $pdo->prepare("INSERT INTO logs (msg) VALUES (:msg)");
foreach ($messages as $msg) {
$stmt->execute([':msg' => $msg]);
}rowCount()
Setelah INSERT/UPDATE/DELETE, rowCount() mengembalikan jumlah baris yang terpengaruh.
<?php
$stmt = $pdo->prepare("DELETE FROM users WHERE active = 0");
$stmt->execute();
echo $stmt->rowCount()." users deleted";lastInsertId()
Setelah INSERT, dapatkan kunci utama kenaikan otomatis dengan $pdo->lastInsertId().
<?php
$stmt = $pdo->prepare("INSERT INTO articles (title) VALUES (:t)");
$stmt->execute([':t' => "My Post"]);
$newId = $pdo->lastInsertId();Jangan Pernah Menggabungkan Masukan Pengguna
Jangan pernah melakukan: "SELECT * FROM users WHERE name = '".$name."'". Selalu gunakan penanda tempat—meskipun Anda telah "membersihkan" masukan tersebut.
Objek PDOStatement
prepare() mengembalikan PDOStatement dengan: execute(), fetch(), fetchAll(), bindParam(), bindValue(), rowCount().
Ringkasan
Selalu gunakan pernyataan siap pakai untuk kueri dengan data eksternal. Utamakan penanda tempat bernama. Gunakan bindValue untuk nilai langsung dan bindParam untuk pengikatan dalam perulangan.
Pemeriksaan Cepat
Kapan bindParam membaca nilainya?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pernyataan Terpraproses dan Pengikatan” gratis?
Ya — teks lengkap “Pernyataan Terpraproses dan Pengikatan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pernyataan Terpraproses dan Pengikatan”?
Gunakan prepare, bindParam, dan execute untuk mencegah injeksi SQL. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Pernyataan Terpraproses dan Pengikatan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Menghubungkan ke MySQL dengan PDO
- Pernyataan Terpraproses dan Pengikatan
- Mengambil Hasil dengan PDO
- Transaksi dengan PDO