Prepared Statement pada PHP body { font-family: sans-serif; line-height: 1.6; max-width: 800px; margin: 40px auto; padding: 0 20px; color:
#0078d7; color: white; padding: 20px; margin: 20px 0; border-radius: 5px; } Prepared Statement pada PHP
Prepared statement adalah fitur dalam PHP yang digunakan untuk melakukan query ke database dengan cara yang aman terhadap serangan SQL injection. Dalam prepared statement, query dan nilai parameter dipisahkan, sehingga mengurangi risiko eksploitasi keamanan.
Fungsi Prepared Statement
Prepared statement berfungsi sebagai berikut:
- Memisahkan query dari data yang diberikan, mencegah serangan SQL injection.
- Mengoptimalkan kinerja dengan mengeksekusi query yang sudah di-"prepare" sebelumnya.
- Menghindari perluasan kode SQL yang berulang ketika parameter berubah.
Perbandingan dengan Tanpa Prepared Statement
Ketika menggunakan prepared statement:
- Kode lebih aman dari serangan SQL injection.
- Kode lebih mudah dijaga dan dipelihara karena query terpisah dari data.
- Kinerja lebih baik karena query hanya di-"prepare" sekali dan dieksekusi berulang kali dengan parameter yang berbeda.
Contoh Kode Prepared Statement:
$pdo = new PDO("mysql:host=localhost;dbname=database", "username", "password");
$name = "John";
$age = 25;
$stmt = $pdo->prepare("SELECT * FROM users WHERE name = :name AND age = :age");
$stmt->bindParam(":name", $name);
$stmt->bindParam(":age", $age);
$stmt->execute();
$result = $stmt->fetchAll();
Contoh Kode Trigger Bahaya (SQL Injection):
$name = $_POST['name'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE name = '$name' AND password = '$password'";
$result = mysqli_query($connection, $query);
Dalam contoh trigger di atas, jika input dari pengguna tidak divalidasi dengan benar, pengguna jahat bisa melakukan serangan SQL injection.
Kesimpulan
Prepared statement pada PHP merupakan cara yang lebih aman dan efisien untuk berinteraksi dengan database, mencegah serangan SQL injection, dan meningkatkan kinerja eksekusi query.
Discussion (0)