Thursday, September 15, 2011

MySQL query dengan tanda petik (') PHP

SQL Query
SQL yang memiliki kepanjangan "Structured Query Language" merupakan sebuah bahasa yang digunakan untuk mengakses dan memanipulasi data yang berada di dalam tabel yang terdapat pada basis data atau database. Bahasa ini merupakan bahasa standar yang dapat digunakan pada semua database server ( SQL, MYSQL,ORACLE,Ms.Access). Bahasa atau sintak SQL tersebut tersusun dari kumpulan kata berupa String.

STRING
String merupakan kumpulan dari berbagai karakter. Didalam PHP, karakter sama dengan byte, dimana terdapat 256 karakter, dari bermacam-macam karakter tersebut semua tidak didukung oleh PHP seperti native-unicode. Beberapa karakter yang akan mengganggu dan akan menimbulkan error pada bahasa SQL antara lain:
1. Single quoted atau kutip tunggal ( ' )
2. Double quoted atau kutip ganda ( " )
Karakter-karakter diatas jika masuk ke dalam bahasa SQL, akan merusak sintak bahasa SQL tersebut dan menimbulkan error,cara untuk mengatasinya yaitu dengan menggunakan fungsi string. Dalam PHP ada banyak fungsi string namun pada kesempatan ini saya akan share fungsi addslashes.

addslashes()
Untuk mengatasi Query-query data yang memiliki value tanda petik ( ' ) atau ( " ) / single quote ('), double quote ("), tanda petik akan mengganggu sintak MySQL, solusi dari masalah tersebut dapat menggunakan fungsi PHP addslashes. contoh :

$kode = "O'reilly " ;

$sql= "Select * from [db_name] where kode = '$kode'"; 


#1064 - You have an error in your SQL syntax; check the manual that  corresponds to your MySQL server version for the right syntax to use  near 'd'' at line 1 
Query di atas pasti error jika kita gunakan

untuk mengatasi error di atas gunakan fungsi :  addslashes ( string $str )

$kode2 = addslashes($kode); // outputnya : O\'reilly
$sql= "Select * from [db_name] where kode = '$kode2'";


SUMBER : DOKUMENTASi PHP.NET

2 comments: