.

Wednesday 19 March 2014

MySQL - API untuk MySQL

MYSQL – API untuk MySQL

Application Programming Interface (API) mendefinisikan kelas(class), kaedah (method), fungsi (function) dan pembolehubah (variable) yang diperlukan oleh aplikasi anda untuk menjalankan tugas. Sebagai contoh, sekiranya anda ingin aplikasi anda berhubung dengan pangkalan data (database), maka API digunakan.

Terdapat 3 API utama yang boleh menjadi pilihan untuk berhubung dengan pelayan (server) pangkalan data MySQL iaitu :

  • PHP’s MySQL Extension
  • PHP’s MySQLi Extension
  • PHP Data Objects (PDO)

PHP’s MySQL Extension

Ini adalah extension asal yang direka untuk membolehkan aplikasi PHP anda berinteraksi dengan pangkalan data MySQL berdasarkan pengaturcaraan procedural yang jelasnya terhad dalam pengaturcaraan berorientasikan objek. Extension ini diperkenalkan sejak PHP vesi 2.0 untuk MySQL versi 3.23. MySQL extension ini secara rasminya deprecated sejak pengenalan PHP 5.5.0 dan akan dikeluarkan di masa akan datang. Dipercayai penggunaan extension mysql adalah agak berbahaya dari segi keselamatan kerana terdapat isu kelemahan (vulnerability) terutamanya dari aspek SQL Injection dalam produk awal PHP ini khususnya apabila diletakkan dalam mod production server. MySQL extension tidak menyokong Prepared Statements. Kedua-dua MySQLi dan PDO menyokong pengaturcaraan berorientasikan objek dan Prepared Statements dan juga menyokong beberapa ciri lanjutan seperti SQL Transac dan Store Procedures. Prepared Statements adalah sangat penting untuk keselamatan aplikasi web, kerana ia melindungi dari serangan SQL Injection. Pengunaan

PHP’s MySQLi Extension

MySQLi bermaksud MySQL improved dan ianya dibangunkan untuk menggunakan peluang ciri-ciri baru di dalam sistem MySQL versi 4.1.3 dan seterusnya. Penambahbaikan utama MySQLi adalah:

  • Antaramuka (interface) berorientasikan objek.
  • Menyokong untuk penyata disediakan (prepared statement).
  • Menyokong untuk pelbagai penyata (multiple statement).
  • Menyokong untuk transaksi.
  • Mempertingkatkan keupayaan debugging.
  • Embedded sokongan pelayan.

PHP Data Objects (PDO)


PDO adalah lapisan abstraksi pangkalan data (DAL) khususnya untuk aplikasi PHP. Ia mampu menyambungkan aplikasi anda ke pelbagai jenis pangkalan data dengan hanya membuat perubahan minimum di kod PHP anda.

Perbezaan API


Jadual perbezaan dari manual PHP di atas menunjukkan perbezaan antara ketiga-tiga API. Extension MySQL kini tidak digalakkan untuk digunakan lagi kerana ianya tidak akan disokong pada masa akan datang. Oleh itu, untuk pembangunan yang baru, digalakkan menggunakan extensionMySQLi ataupun PDO.

Yang mana satu? MySQLi Extension atau PDO?

PDO mempunyai ciri-ciri yang hampir sama dengan MySQLi cuma PDO bercirikan mudah alih (boleh digunakan dengan pelbagai pangkalan data). Ya, hampir sama tapi tidak serupa, walaupun PDO adalah API yang senang dan mudah alih, tetapi ia tidak menyokong ciri-ciri yang maju di dalam pelayan MySQL versi terbaru.  Artikel yang ditulis oleh Rudi Visser menekankan beberapa perkara yang harus diambil kira dalam pemilihan API.

Perkara utama yang beliau tekankan adalah, adakah pembangunan (development) anda ini akan menggunakan enjin pangkalan data selain MySQL? Jika tidak, anda tidaklah perlu menggunakan DAL.  Jika ya, PDO adalah API yang sesuai.

Ada yang berpendapat menggunakan PDO adalah lebih selamat untuk penambahbaikkan dimasa hadapan, tetapi ianya bergantung kepada projek anda, samaada ianya inginkan ciri-ciri mudah alih ataupun tidak.

Untuk mempelajari kursus PHP yang berkonsepkan pengaturcaraan berorientasikan objek, anda boleh menghadiri kursus Object-Oriented Programming with PHP and MySQL yang bakal diadakan pada 23-Jun-2014 hingga 26-Jun-2014. Selain kursus ini, kami juga menawarkan pelbagai kursus berteraskan ICT, untuk melihat kalendar kursus dianjurkan oleh kami, anda boleh melayari http://www.training.2-sigma.com atau anda boleh terus menghubungi kami di talian 03-61880601 untuk mendapatkan kandungan kursus dan tarikh kursus terdekat ataupun menerusi emel sales@2-sigma.com.

0 comments:

Post a Comment