Tutorial PHP : Alternatif Escape String PHP PDO

Dalam penggunaan PHP non PDO mungkin kita sudah mengenal tentang fungsi seperti mysqli_escape_string atau real_escape_string, tapi pada PDO sebenarnya saya belum menemukan apakah fungsi itu ada atau tidak, tapi sebenarnya escape string sendiri tidak terlalu dibutuhkan semenjak ada fungsi prepared statement, karena kita tahu sendiri bahwa fungsi escape string secara umum digunakan untuk menghindari string – string yang di inputkan oleh user dengan tujuan untuk mencari kerentanan sql injection, sehingga ini artinya dengan menggunakan prepared statement kita sudah bisa mengatasi ini.

Namun dalam beberapa kasus mungkin fungsi escape string ini memang dibutuhkan, dalam contoh kasus mungkin Anda ingin menginjekan langsung sebuah query pencarian, karena jujur saja saya agak kebingungan bagaimana mendefinisikan keyword pencarian dalam prepared statement terutama dalam binParam, karena biasanya dalam bindParam didefinisikan nama kolom dan variabel datanya, tapi karena ini adalah keyword pencarian maka saya agak bingung mengimplementasikannya, sehingga dari sinilah saya mulai mencari – cari bagaimana mengeliminasi string yang baik diinputkan secara sengaja atau tidak didalam box pencarian.

Berikut ini saya berikan contoh kode query pencarian yang saya gunakan
 
Alternatif Escape String PHP PDO


Dalam kode diatas saya ketika user menginputkan string tunggal ‘ dalam box pencarian, maka akan terjadi sebuah kesalahan/error/bugs. Dan kalau dipikir pikir sebenarnya mudah, kita bisa saja mengeliminasi string tunggal tersebut dengan fungsi str_replace. Contoh
  
  <?php 

public function stringescape($data)
{
	$data = trim($data);
	// parameter str_replace(search, replace, subject)
	$data = str_replace("'", "''", $data);
	return $data;
}
?>



Dalam contoh kode diatas saya mereplace string tunggal ‘ dengan dua string tunggal ‘’ tujuannya adalah jika misal nilai/data keyword pencarian memang mengandung string tunggal, maka data akan tetap bisa dicari, tapi jika memang string ingin dieliminasi, Anda bisa membuatnya seperti berikut
 
 
<?php 

public function stringescape($data)
{
	$data = trim($data);
	// parameter str_replace(search, replace, subject)
	$data = str_replace("'", "", $data);
	return $data;
}
?>

0 Response to "Tutorial PHP : Alternatif Escape String PHP PDO"

Post a Comment

Silahkan untuk meninggalkan komentar, santai saja dan mulailah berkomentar...