Kursus Membuat Web

iklan

Meng-Insert Data ke Tabel di Database pada MySQL dengan prepare statement di PHP (PHP versi 5.6.x dan 7.0.x)

Prepare statement sangat berguna untuk mengatasi serangan SQL injection.

Prepare Statement di MySQLi

Contoh meng-insert data ke tabel di database dengan prepare statement (MySQLi Object-Oriented)
<?php
$namaServer = "localhost";
$namaUser = "root";
$password = "";
$namadb = "dbku";

// membuat koneksi
$conn = new mysqli($namaServer, $namaUser, $password, $namadb);

// Check koneksi
if ($conn->connect_error) {
    die("Koneksi Error: " . $conn->connect_error);
}

// prepare and bind
$stmt = $conn->prepare("INSERT INTO Pelanggan (nama_depan, nama_belakang, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $nama_depan, $nama_belakang, $email);

// set parameters and execute
$nama_depan = "Muhammad";
$nama_belakang = "Falah";
$email = "yupocom@gmail.com";
$stmt->execute();

$nama_depan = "Muhammad";
$nama_belakang = "Fatah";
$email = "fatah@contoh.com";
$stmt->execute();

$nama_depan = "Muhammad";
$nama_belakang = "Fadil";
$email = "fadil@contoh.com";
$stmt->execute();

echo "Penambahan data berhasil";

$stmt->close();
$conn->close();
?>

Lihat baris kode ini :

INSERT INTO Pelanggan (nama_depan, nama_belakang, email) VALUES (?, ?, ?)

Di query SQL, kita menyisipkan tanda tanya (?) yang mana nantinya akan disi dengan nilai integer, string, double atau blob.

Lalu, lihat fungsi bind_param()

$stmt->bind_param("sss", $nama_depan, $nama_belakang, $email);

Fungsi bind_param() ini berfungsi untuk memberitahu parameter apa saja yang akan dikirim ke database, pada contoh diatas dibuat "sss" yang berarti ketiga parameter yang dikirim adalah bernilai string.

Nilai bisa berupa type :

  • i - integer
  • d - double
  • s - string
  • b - BLOB

Kita harus memberi nilai untuk masing-masing parameter

Dengan memberitahu MySQL type data apa yang dikirim, ini akan meminimalkan dari serangan SQL injection.

Ingat : Jika kita memasukkan data dari sumber-sumber luar misal dari inputan user, adalah sangat penting untuk membersihkan dan memvalidasi inputan tersebut.

Prepare Statement di PDO

Contoh meng-insert data ke tabel di database dengan prepare statement (PDO (PHP Data Objects))
<?php
$namaServer = "localhost"; 
$namaUser = "root";
$password = "";

try {
    $conn = new PDO("mysql:host=$namaServer;dbname=dbku", $namaUser, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	
	// prepare sql and bind parameters
    $stmt = $conn->prepare("INSERT INTO Pelanggan (nama_depan, nama_belakang, email)
    VALUES (:nama_depan, :nama_belakang, :email)");
    $stmt->bindParam(':nama_depan', $nama_depan);
    $stmt->bindParam(':nama_belakang', $nama_belakang);
    $stmt->bindParam(':email', $email);

    // insert a row
    $nama_depan = "Muhammad";
    $nama_belakang = "Falah";
    $email = "yupocom@gmail.com";
    $stmt->execute();

    // insert another row
    $nama_depan = "Muhammad";
    $nama_belakang = "Fatah";
    $email = "fatah@contoh.com";
    $stmt->execute();

    // insert another row
    $nama_depan = "Muhammad";
    $nama_belakang = "Fadil";
    $email = "fadil@contoh.com";
    $stmt->execute();
	
    echo "Penambahan data berhasil";
    }
		catch(PDOException $e)
    {
    echo "Penambahan data error : " . $e->getMessage();
    }
	
$conn = null;
?>

Selanjutnya kita akan mencari (select) Data di Tabel pada Database di MySQL dengan PHP.

muhammad falah

Saya Muhammad Falah, jika Anda ingin langsung belajar dengan Saya, silakan ikuti kursus membuat web yang Saya bimbing atau ikuti Saya di :

Muhammad Falah Youtube Channel Muhammad Falah LinkedIn Muhammad Falah Google Plus Muhammad Falah Twitter Muhammad Falah Facebook

copy right © 2015