Cara menggunakan mysql_real_escape_string mysqli replacement

As mysql_real_escape_string is now deprecated, I have to change one function on the site that is using it. For the life of me, I can't figure out proper mysqli or pdo code to use. Maybe someone can guide me at the right direction. This is how it currently looks.

    if (isset($_GET['btnSearch']) && !empty($_GET['txtSearch'])) {

        $txtSearch = trim(mysql_real_escape_string($_GET['txtSearch']));

        if (preg_match("/^(?i)BAW[0-9]+/", $txtSearch)) {
            $pilot->pilot_num = strtoupper($txtSearch);
        } else {
            $pilot->name = $txtSearch;
        }
    }

Thank you all.

OK.. Langsung Saja Kita ke penjelasan code dari Mysql_real_escape string , biasanya kita menampung data dari method POST dan kita simpan dalam variabel akan berbentuk seperti ini :

//Misalkan username dan password didapatkan dari $_POST
$username = $_POST['username'];
$password = $_POST['password'];

Jika kita gunakan fungsi mysql_real_escape_string()

//Misalkan username dan password didapatkan dari $_POST
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

Sedikit perbedaan jika kita menggunakan MYSQLi , kita harus menambahkan koneksi-Nya

//Misalkan username dan password didapatkan dari $_POST
$username = mysqli_real_escape_string($koneksi, $_POST['username']);
$password = mysqli_real_escape_string($koneksi, $_POST['password']);

Nah.. Untuk Contoh penggunaan dalam query , Berikut ini adalah contoh penggunaanya :

<?php
$koneksi=mysqli_connect("localhost","my_user","my_password","my_db");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$username = mysqli_real_escape_string($koneksi, $_POST['username']);
$password = mysqli_real_escape_string($koneksi, $_POST['password']);

$sql="INSERT INTO Users (username,password)
VALUES ('$username', '$password')";

if (!mysqli_query($koneksi,$sql)) {
  die('Error: ' . mysqli_error($koneksi));
}
echo "1 record added";

mysqli_close($koneksi);
?>

Berikut adalah cara klasik dan aman untuk menggunakan fungsi ini sebagai pembersih masukan untuk parameter string.

User input (attack attempt).
a' OR 'a'='a
Sanitizing input.
$param = mysql_real_escape_string($_GET['n']);
Query Yang Dihasilkan.
SELECT id FROM products WHERE name='a\' OR \'a\'=\'a'

Karena contoh terakhir diamankan dengan SQL INJECTION, kueri yang dihasilkan tidak akan menghasilkan apa-apa.Menggunakan mysql_real_escape_string merupakan cara sederhana untuk mengamankan aplikasi terhadap SQL INJECTION, namun ini jauh dari kata yang sempurna. Setiap kali fungsi ini digunakan untuk membersihkan data,Namun mysql_real_escape_string, ini akan memperlambat server database Anda Jika digunakan dalam bentuk besar atau banyak.

The real_escape_string() / mysqli_real_escape_string() function escapes special characters in a string for use in an SQL query, taking into account the current character set of the connection.

This function is used to create a legal SQL string that can be used in an SQL statement. Assume we have the following code:

Pada kesempatan kali ini saya akan memberikan contoh penggunaan mysql_real_escape_string yang bisa kita buatkan dalam sebuah file kemudian diincludekan di setiap halaman yang berhubungan dengan query di mysql. Tujuannya tentu menghindari perintah – perintah injeksi untuk query mysql kita.

Sebelumnya kita buatkan sebuah file dengan nama cekIsi.php kemudian include-kan file ini disetiap halaman yang mengeksekusi query mysql.

Fungsi real_escape_string() / mysqli_real_escape_string() digunakan untuk lolos dari karakter khusus dalam string untuk digunakan dalam kueri SQL, dengan mempertimbangkan kumpulan karakter saat ini dari koneksi.

Fungsi ini digunakan untuk membuat string SQL legal yang dapat digunakan dalam pernyataan SQL. Asumsikan kita memiliki kode berikut:

Jika sudah menggati script koneksi kedalam database, maka tentu semua kode akan error, oleh sebab itu kita harus mengganti semua kode, jika di buka satu persatu filenya akan merepotkan sekali ya. Berikut cara yang sedott codee terapkan.


Cara Cepat dan Mudah Convert MySQL ke MySQLi

  • Dengan Menggunakan NotePad++
  • Dengan Menggunakan Sublime Text
  • Dengan script MySQLConverterTool

Kita akan bahas satu persatu cara mengubah mysql ke mysqli, pertama yakni dengan notepad++. sebenarnya ini intinya search dan replace saja.

1. Dengan Menggunakan NotePad++

1. Pertama, buka dulu lokasi folder yang akan kita ubah.

Cara menggunakan mysql_real_escape_string mysqli replacement
lokasi folder


2. Masukkan dikolom pencarian (*.php) tanpa kurung (untuk pengguna windows)

Cara menggunakan mysql_real_escape_string mysqli replacement
(*.php)


3. Select All (CTRL+A) , klik kanan open with notepad++

Cara menggunakan mysql_real_escape_string mysqli replacement
 open with notepad++


4. CTRL+H Find dan Replace

Cara menggunakan mysql_real_escape_string mysqli replacement
Find dan Replace


Perhatian, jika disimak pada gambar di atas, kita baru saja mereplace function mysql_affected_rows 

dengan function mysqli_affected_rows  yang mempunyai parameter ($link). Variabel $link ini adalah link koneksi kedalam database, lihat script  koneksi.php diatas.


Selanjutnya, cari lagi function mysql yang sudah ada di daftar di atas dan replace seperti gambar. Dan yang terakhir jangan lupa simpan


5. SAVE ALL (CTRL+SHIFT+S)



2. Dengan Menggunakan Sublime Text

Dengan menggunakan sublime, ini menurut saya lebih enak lagi, silahkan simak caranya berikut ini:

1. Buka dulu sublime

2. Klik menu File -> Open Folder

3. Cari lokasi folder, kemudian Select Folder

4. Klik menu Find -> Find in Files

Cara menggunakan mysql_real_escape_string mysqli replacement
Find in Files


5. Silahkan Search dan Replace

6. Simpan, Klik File -> Save All


3. Dengan script MySQLConverterTool

Ini sepertinya lebih gampang lagi alias lebih mudah da simple. Caranya

1. Download MySQLConverterTool

2. Ekstrak kedalam folder root anda (htdoc) xampp

3. Akses dengan cara localhost/namafolder_MySQLConverterTool, ENTER

Cara menggunakan mysql_real_escape_string mysqli replacement
MySQLConverterTool4. Silahkan sesuai kebutuhan teman-teman. Dalam kasus ini memilih Convert a directory. Dan tampilan form-nya seperti berikut ini:
Cara menggunakan mysql_real_escape_string mysqli replacement
MySQLConverterTool

5. Copy direktori project kalian yang masih menggunakan PHP MySQL dan Paste ke kolom Directory lalu abaikan untuk yang lain. Kecuali untuk pilihan Update files? Pilih yes dan secara otomatis Backup files? Tercentang (Ini rekomendasi aja apabila kalian masih butuh yang lama).

Dan file yang di backup tadi apabila nama file sebelumnya config.php maka akan berubah menjadi config.php.org.


6. Klik Start the conversion > dan tunggu beberapa saat hingga proses selesai. Apabila ada keterangan warning silahkan diperbaiki secara manual. Karena disitu akan diberi petunjuk, walaupun pada dasarnya ketika dijalankan web aplikasi kalian tidak terjadi apa-apa (Rekomendasi diperbaiki untuk jaga-jaga).


7. Done....


Demikian bagaimana cara mengubah mysql ke mysqli, semoga teman-teman tidak ada kendala. Silahkan dicoba. dan untuk kamu yang suka copassss, kamuuu ya kamuu, jangan kopas semuanya lahhh, saya selaku admin sedot code sudah begitu capek menghapus link copasan kalian dari google. 


Cara menggunakan mysql_real_escape_string mysqli replacement
Cara Cepat dan Mudah Convert MySQL ke MySQLi Rdk 2018-02-07T21:07:00+07:00 5.0 stars based on 35 reviews Semenjak php versi 5 (lima) sudah ada pemberitahuan bahwa akan ada perubahan atau update menghilangkan fungsi mysql, seperti mysql_connect()...

Mysqli_real_escape_string untuk apa?

Fungsi mysql_real_escape_string digunakan untuk mem-bypass karakter spesial dalam query SQL, sehingga jika attacker mnyertakan karakter seperti ' ! ^ ] ” dan lain sebagainya, maka fungsi ini tidak akan membaca karakter tersebut.

Apa itu Mysql_escape_string?

Jadi sah saja jika mysql_real_escape_string() adalah fungsi PHP yang digunakan untuk memberi perlindungan atau mencegah Sql Injection dalam tanda kutip, terhadap karakter-karakter unik atau karakter khusus sebelum mengirim query ke mysql yang dapat membahayakan data termasuk dari serangan SQL injection.

Bagaimana cara membuat CRUD dengan PHP dan mysql?

Jika Anda belum memahami bagaimana membuat fitur CRUD menggunakan PHP dan MySQL silahkan simak langkah-langkah berikut:.
STEP 1 – Persiapan. ... .
STEP 2 – Membuat Database. ... .
STEP 3 – Buat Koneksi Database. ... .
STEP 4 – Buat View Data. ... .
STEP 5 – Buat Insert Data. ... .
STEP 6 – Buat Update Data. ... .
STEP 7 – Buat Delete Data..

Apa yang dimaksud dengan mysql_fetch_row?

Fungsi Mysql_fetch_row di PHP adalah sebagai perintah yang digunakan untuk menampilkan tiap-tiap baris data berdasarkan baris dan kolom tertentu pada tabel database sebagai hasil dari query mysql dengan argumen di dalamnya.