Tulisan ini sebenarnya hanya sekedar mengingatkan saja, khususnya buat Penulis, yang baru saja menerima laporan error dari Pengguna Akhir, saat insert data menggunakan function ExecuteStatement.
Biasanya, tanpa kita sadari, sering kali data String yang akan kita masukkan ke Database menggunakan function ExecuteStatement tadi, mengandung karakter petik tunggal (‘) atau apostrof. Jika tidak ditangani secara khusus, maka karakter ini bisa menyebabkan error saat proses penyimpanan data.
Untuk mengatasi isu ini, maka pastikan untuk selalu menggunakan function AdjustSql di setiap parameter yang diperkirakan mengandung karakter petik tunggal tadi. PHPMaker sebenarnya sudah lama menyediakan function tersebut, dan ini cara paling aman dan efektif, untuk mengatasi permasalahan klasik di atas tadi.
Cara menggunakannya bisa dilihat lewat contoh kode di bawah ini:
ExecuteStatement("INSERT INTO catatan_referan(Nama, Catatan, Tanggal) VALUES ('" . AdjustSql($newRow["Nama"]) . "', '" . AdjustSql($newRow["Catatan"]) . "', '" . CurrentDateTime() . "'");
Dari kode tersebut, maka terdapat 2 Field yang perlu mendapat perhatian khusus, yaitu Nama dan Catatan. Kedua Field ini tentu saja memiliki kemungkinan menerima data yang mengandung karakter apostrof yang sering menyebabkan error.
Tidak itu saja. Selain menangani data yang mengandung karakter petik tunggal, function AdjustSql juga sudah menangani kemungkinan data mengandung karakter petik ganda (“), karakter \0, karakter \n, karakter \r, karakter \t, karakter chr 26 atau Substitute, karakter chr 8 atau Backspace, dan karakter Backslash.
Kalau tidak menggunakan function AdjustSql, maka kita harus menangani satu per satu kemungkinan karakter yang sudah disebutkan tersebut, dan tentu saja ini cukup merepotkan karena harus menulis kode baris per baris untuk menangani karakter-karakter yang sudah disebutkan tadi.
Jadi, jangan pernah lupa atau menyepelekan function AdjustSql tersebut, kalau tidak ingin mengalami permasalahan klasik error saat menyimpan data ke Database!
Tinggalkan Balasan