Berikut adalah contoh penggunaan PHP untuk membuat koneksi database, dan operasi dasar CRUD (Create, Read, Update, Delete) dengan langkah-langkah untuk mencegah SQL injection:
1. **Koneksi Database**: Buatlah file `koneksi.php` untuk membuat koneksi dengan database dan menghindari SQL injection.
```php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "nama_database";
// Membuat koneksi
$conn = new mysqli($servername, $username, $password, $dbname);
// Memeriksa koneksi
if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error);
}
?>
```
Pastikan Anda mengganti `"localhost"`, `"username"`, `"password"`, dan `"nama_database"` sesuai dengan informasi koneksi database Anda.
2. **Input Data**: Buatlah file `tambah.php` untuk menambah data ke dalam database.
```php
<?php
include 'koneksi.php';
// Menghindari SQL Injection
$nama = mysqli_real_escape_string($conn, $_POST['nama']);
$umur = mysqli_real_escape_string($conn, $_POST['umur']);
// Query untuk menambah data
$sql = "INSERT INTO tabel_data (nama, umur) VALUES ('$nama', '$umur')";
if ($conn->query($sql) === TRUE) {
echo "Data berhasil ditambahkan";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
```
3. **View Data**: Buatlah file `lihat.php` untuk melihat data dari database.
```php
<?php
include 'koneksi.php';
// Query untuk mengambil data
$sql = "SELECT * FROM tabel_data";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// Output data setiap baris
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - Nama: " . $row["nama"]. " - Umur: " . $row["umur"]. "<br>";
}
} else {
echo "Tidak ada data";
}
$conn->close();
?>
```
4. **Edit Data**: Buatlah file `edit.php` untuk mengedit data dalam database.
```php
<?php
include 'koneksi.php';
// Menghindari SQL Injection
$id = mysqli_real_escape_string($conn, $_POST['id']);
$nama = mysqli_real_escape_string($conn, $_POST['nama']);
$umur = mysqli_real_escape_string($conn, $_POST['umur']);
// Query untuk mengedit data
$sql = "UPDATE tabel_data SET nama='$nama', umur='$umur' WHERE id=$id";
if ($conn->query($sql) === TRUE) {
echo "Data berhasil diubah";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
```
5. **Hapus Data**: Buatlah file `hapus.php` untuk menghapus data dari database.
```php
<?php
include 'koneksi.php';
// Menghindari SQL Injection
$id = mysqli_real_escape_string($conn, $_POST['id']);
// Query untuk menghapus data
$sql = "DELETE FROM tabel_data WHERE id=$id";
if ($conn->query($sql) === TRUE) {
echo "Data berhasil dihapus";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
```
Dengan menggunakan fungsi `mysqli_real_escape_string()`, kita dapat mencegah SQL injection dengan menghindari karakter khusus yang dapat merusak query SQL. Pastikan juga untuk melakukan validasi dan sanitasi input pengguna di sisi klien (HTML/JavaScript) untuk meningkatkan keamanan aplikasi Anda.
No comments:
Post a Comment