Cara menggunakan mysqli extension for php

Cara Mengaktifkan MySQLi di Xampp pada Codeigniter 3.x serta Kelebihan MySQLi dibanding MySQL penting kita ketahui. Mengapa bahasan aktifasi MySQLi itu penting diketahui bagi programmer Codeigniter, terutama versi 3.x keatas ?. Nah, jawabannya karena pada CI versi 3 keatas, defaultnya menggunakan MySQLi sebagai pengeksekusi perintah ke database MySQL. Perintah MySQLi memiliki beberapa perbedaan dengan perintah standar MySQL. Nah, sebelum mengulas lebih jauh, simak pengertian MySQLi berikut ini.

 

MySQLi

Pengertian MySQLi

Cara menggunakan mysqli extension for php
Cara menggunakan mysqli extension for php

Cara Mengaktifkan MySQLi di Xampp pada Codeigniter 3.x serta Kelebihan MySQLi dibanding MySQL

MySQLi adalah sebuah class di PHP yang berguna untuk mengeksekusi perintah pada database MySQL. MySQLi merupakan singkatan dari MySQL Improved Extension. Dari namanya sendiri, sudah dapat ditebak, bahwa class ini merupakan sebuah perkembangan dan perbaikan dari extension mysql sebelumnya. Extension ini dibuat dalam merangkan untuk mendukung fitur terbaru yang berkembang. Lalu apa saja kelebihan MySQLi dibanding MySQL ? Simak ulasan berikut yah.

 

MySQLi vs MySQL

Sebenarnya karena Mysqi merupakan perkembangan dari Mysql, tak begitu banyak perbedaannya, namun disini admin akan menyertakan 5 kelebihan MySQLi dibanding MySQL :

  • Untuk PHP versi 5.5 keatas, beberapa fungsi pada MySQL telah ditinggalkan, dan hanya bisa dieksekusi menggunakan MySQLi.
  • MySQLi mendukung Statement Awal serta Multi Statement.
  • Pengaksesan Stored Procedure, Stored Function, serta semua fungsi pada MySQL versi 4.1 keatas yang sudah bisa dijalankan menggunakan MySQLi.
  • Dukungan server tertanam.
  • Kemampuan debugging yang meningkat.

Karena seluruh akses di MySQL dapat dijalankan oleh MySQLi, namun beberapa fungsi di MySQLi tidak dapat dijalankan di MySQL, maka alangkah baiknya kita menggunakan extension MySQLi untuk aplikasi Codeigniter kita. Setelah kita memilih MySQLi dibanding MySQL, tentu akan muncul pertanyaan, bagaimana cara mengaktifkan MySQLi di localhost menggunakan Xampp ? Nah, jawabannya ada pada penjelasan dibawah ini.

 

Cara Mengaktifkan MySQLi di Xampp dan Localhost

Untuk mengaktifkan extension ini, terbilang tak terlalu susah. Berikut beberapa langkah untuk aktifasi MySQLi di localhost :

  1. Buka lokasi tempat Xampp terinstal, kemudian buka folder PHP (biasanya di : C/xampp/php).

Cara menggunakan mysqli extension for php
Cara menggunakan mysqli extension for php

Buka lokasi tempat Xampp terinstal, kemudian buka folder PHP biasanya di C-xampp-php

 

  1. Cari file php.ini pada folder tersebut, lalu buka menggunakan notepad++ (bisa sublime, atom, dll).

Cara menggunakan mysqli extension for php
Cara menggunakan mysqli extension for php

Cari file php.ini pada folder tersebut, lalu buka menggunakan notepad++

 

  1. Tambahkan listing code berikut di halaman tersebut (lokasinya terserah, diatas, tengah, bawah juga boleh)

    Untuk dapat berinteraksi dengan database, khususnya MySQL, hal pertama yang harus kita lakukan adalah menghubungkan MySQL dengan PHP. Terdapat berbagai cara untuk melakukannya, untuk itu pada kesempatan ini kita akan membahas cara menghubungkan MySQL dengan PHP.

    PHP terus berkembang, fungsi fungsi bawaan yang ada juga terus di kembangkan, ada yang dipertahankan dan ada yang dihilangkan, demikian juga fungsi terkait untuk menghubungkan MySQL dengan PHP.

    Cara menggunakan mysqli extension for php
    Cara menggunakan mysqli extension for php

    Catatan: Selain pada MySQL, tutorial ini juga dapat digunakan untuk MariaDB (Duplikat MySQL).

    MySQLi and PDO

    Biasanya ketika kita ingin menghubungkan PHP dengan MySQL, kita menggunakan fungsi berikut:

    mysql_connect()
    mysql_select_db()
    mysql_close()

    Saat ini, jika sobat masih menggunakan fungsi tersebut maka sebaiknya segera ditinggalkan karena fungsi tersebut HANYA didukung hingga PHP versi 5, mulai versi 7 fungsi tersebut sudah dihilangkan, sehingga jika masih menggunakannya akan muncul fatal error.

    Jadi fungsi apa yang harus digunakan?

    Saat ini, PHP menyediakan dua cara untuk menghubungkan PHP dengan MySQL, yaitu dengan MySQLi (MySQL Improvement) dan PDO (PHP Data Object).

    MySQLi

    Dukungan prosedural programming

    • Ya, mysqli mendukung model prosedural programming.
    • Jika Sobat sudah terbiasa menggunakan fungsi mysql_xxx, maka ekstensi ini pas untuk sobat, MySQLi menyediakan fungsi yang sama dengan ekstensi mysql, kita hanya perlu mengubah mysql menjadi
      $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
      
      if (!$con) {
          echo "Error: " . mysqli_connect_error();
      	exit();
      }
      echo 'Koneksi berhasil';
      
      0, misalnya:
      $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
      
      if (!$con) {
          echo "Error: " . mysqli_connect_error();
      	exit();
      }
      echo 'Koneksi berhasil';
      
      1 menjadi
      $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
      
      if (!$con) {
          echo "Error: " . mysqli_connect_error();
      	exit();
      }
      echo 'Koneksi berhasil';
      
      2.

    Dukungan Object Oriented Programming (OOP)

    • MySQLi mendukung Object Oriented Programming.
    • MySQLi hanya mendukung database MySQL, jadi jika sobat bekerja dengan database lain, atau merencanakan menggunakan database lain, sebaiknya gunakan PDO
    • Tidak mendukung “Named Parameter”
    • Mendukung prepare statement (mencegah SQL injection)
    • Lebih cepat dibanding PDO

    PDO

    Dukungan prosedural programming

    • PDO tidak mendukung model prosedural programming.
    • Jika sobat terbiasa menggunakan fungsi mysql_xxx, maka perlu belajar dari awal untuk menggunakan ekstensi ini

    Dukungan Object Oriented Programming (OOP)

    • PDO mendukung Object Oriented Programming.
    • Mendukung hingga 12 database, list database yang didukung dapat dilihat disini.
    • Mendukung “Named Parameter”
    • Mendukung prepare statement (mencegah SQL injection)
    • Lebih lambat dari MySQLi

    Kita akan membahas kedua fungsi tersebut.

    Menghubungkan MySQL Dengan PHP

    Terdapat beberapa cara dan parameter untuk menghubungkan PHP dengan MySQL, yaitu menggunakan MySQli dan PDO

    Menggunakan MySQLi (Prosedural dan OOP)

    Seperti telah disebutkan sebelumnya bahwa ekstensi mysqli memiliki dua jenis inteface yaitu procedural dan object-oriented progamming(oop).

    Untuk model prosedural programming, format yang digunakan mirip dengan ekstensi mysql_ (tanpa i) sehingga bagi yang terbiasa menggunakan ekstensi mysql_xxx akan familiar menggunakan model ini.

    Pada model prosedural, fungsi yang digunakan untuk menghubungkan PHP dan MySQL adalah mysqli_connect(), jika kita perhatikan fungsi ini mirip dengan mysql_connect() – tanpa i. Argumen yang digunakan pun sama, yaitu: 

    $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
    
    if (!$con) {
        echo "Error: " . mysqli_connect_error();
    	exit();
    }
    echo 'Koneksi berhasil';
    
    4

    Contoh penggunaan adalah sebagai berikut:

    $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
    
    if (!$con) {
        echo "Error: " . mysqli_connect_error();
    	exit();
    }
    echo 'Koneksi berhasil';
    

    Untuk model OOP, format yang digunakan juga hampir sama yaitu:

    $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
    
    if (!$con) {
        echo "Error: " . mysqli_connect_error();
    	exit();
    }
    echo 'Koneksi berhasil';
    
    5, contoh:

    $con = @new mysqli('localhost', 'root', '', 'wordpress');
    
    if ($con->connect_error) {
        echo "Error: " . $con->connect_error;
    	exit();
    }
    echo 'Koneksi berhasil';

    Beberapa pesan kesalahan yang  mungkin terjadi dari kode diatas:

    • Error: Access denied for user ”@’localhost’ to database ‘wordpress’ Berarti bahwa tidak dapat login ke database MySQL dengan user name dan password yang ada
    • Error: Unknown database ‘wordpress’ Berarti bahwa login berhasil dilakukan namun database wordpress tidak dapat ditemukan

    Contoh lengkap:

    // Open Connection
    $con = @mysqli_connect('localhost', 'root', '', 'produk');
    
    if (!$con) {
        echo "Error: " . mysqli_connect_error();
    	exit();
    }
    
    // Some Query
    $sql 	= 'SELECT * FROM produk';
    $query 	= mysqli_query($con, $sql);
    while ($row = mysqli_fetch_array($query))
    {
    	echo $row['nama'];
    }
    
    // Close connection
    mysqli_close ($con);

    Penting diperhatikan bahwa ketika mengeksekusi query menggunakan mysqli, maka argumen pertama adalah koneksi, baru kemudian query yang akan dieksekusi: 

    $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
    
    if (!$con) {
        echo "Error: " . mysqli_connect_error();
    	exit();
    }
    echo 'Koneksi berhasil';
    
    6 hal ini berbeda dengan ekstensi mysql_xxx dimana argumen hanya berisi perintah sql: 
    $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
    
    if (!$con) {
        echo "Error: " . mysqli_connect_error();
    	exit();
    }
    echo 'Koneksi berhasil';
    
    7

    Untuk mengetahui fungsi MySQLi baik menggunakan OOP Interface maupun Prosedural Interface, silakan mengunjungi: PHP: The MySQLi Extension Function Summary – Manual

    Pada halaman tersebut terdapat berbagai fungsi-fungsi familiar seperti mysqli_num_fields(), mysqli_fetch_row(), dan mysqli_fetch_array().

    Menggunakan PDO

    Berbeda dengan MySQLi, untuk menghubungkan MySQL dengan PHP menggunakan PHP PDO, kita harus menggunakan

    $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
    
    if (!$con) {
        echo "Error: " . mysqli_connect_error();
    	exit();
    }
    echo 'Koneksi berhasil';
    
    8 block.

    Maksudnya adalah

    $con = @mysqli_connect('localhost', 'root', '', 'wordpress');
    
    if (!$con) {
        echo "Error: " . mysqli_connect_error();
    	exit();
    }
    echo 'Koneksi berhasil';
    
    9 berarti kita mencoba menjalankan suatu script php, jika terjadi error maka error tersebut akan ditangkap
    $con = @new mysqli('localhost', 'root', '', 'wordpress');
    
    if ($con->connect_error) {
        echo "Error: " . $con->connect_error;
    	exit();
    }
    echo 'Koneksi berhasil';
    0 sehingga output dari error akan terisolasi pada block tersebut.

    Contoh:

    try 
    {
    	$pdo = new PDO('mysql:host=localhost;dbname=produk', 'root', '');
    
    }
    catch (PDOException $e) 
    {
        echo 'Error: ' . $e->getMessage();
        exit();
    }
    echo 'Koneksi berhasil';

    Contoh lengkapnya:

    // Open connection
    try 
    {
    	$pdo = new PDO('mysql:host=localhost;dbname=produk', 'root', '');
    
    }
    catch (PDOException $e) 
    {
        echo 'Error: ' . $e->getMessage();
        exit();
    }
    
    // Run Query
    $sql 	= 'SELECT * FROM produk';
    $stmt 	= $pdo->prepare($sql); // Mencegah SQL injection . stmt artinya statement
    $stmt->execute();
    while ($row = $stmt->fetch())
    {
    	echo $row['nama'];
    }
    
    // Close connection
    $pdo = null;

    Atribut pada PDO

    PDO memiliki banyak attribute untuk mengatur berbagai fitur yang ada, diantaranya:

    • PDO::ATTR_ERRMODE untuk mengatur error yang ditampilkan
    • PDO::ATTR_DEFAULT_FETCH_MODE  untuk mengatur default fetch mode

    Contoh penggunaan beberapa attribute sekaligus:

    try 
    {
    	$driver_options = array(
    		PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
    		PDO::ATTR_ERRMODE => PDO::ATTR_ERRMODE_EXCEPTION,
    		PDO::MYSQL_ATTR_LOCAL_INFILE => 1
    	);
    	
    	$pdo = new PDO('mysql:host=localhost;dbname=produk', 'root', '', $driver_options);
    }

    Contoh penggunaan satu atribut:

    try 
    {
    	$pdo = new PDO('mysql:host=localhost;dbname=produk', 'root', '');
    	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ATTR_ERRMODE_EXCEPTION);
    }

    Untuk list lengkap attribute yang tersedia, silakan kunjungi: PHP: PDO::setAtribute – Manual.

    Catatan

    Jika kita perhatikan, pada script diatas kita selalu menutup koneksi mysql setiap kali selesai menggunakan MySQL. Perlukah melakukan hal ini?  jawabnya bisa ya bisa tidak.

    Jika jawabnya ya

    Ya, untuk membiasakan sesuatu yang baik karena di bahasa pemrograman lain, jika koneksi tidak ditutup secara manual, maka akan terus terbuka dan tersimpan dalam memory.

    Jika jawabnya tidak

    PHP merupakan bahasa interpreter, seperti pyton yang artinya tidak langsung berhubungan dengan fisik komputer, seperti RAM, ada engine sendiri yang menterjemahkan bahasa PHP ke bahasa komputer yaitu Zend Engine.

    Nah, untuk menjaga agar program tetap berjalan dengan baik, maka setiap akhir eksekusi script engine tersebut akan otomatis menutup semua koneksi pada database.

    Artikel terkait:

    • Cara Baru Menampilkan Data Tabel Pada Database MySQL Dengan PHP
    • Menampilkan Data MySQL Ke Dalam Tabel HTML

    Demikian pembahasan mengenai cara menghubungkan PHP dengan MySQL, semoga bermanfaat.

    Subscibe Now

    Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com

    Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun.