Macam-Macam Cara Membuat Koneksi Database PHP: PDO, MySQLi, dan Lainnya

Beberapa cara untuk membuat file `config.php` yang menghubungkan ke database MySQL menggunakan PHP. Setiap metode memiliki kelebihan dan kekurangan tersendiri, dan pemilihan metode tergantung pada kebutuhan dan preferensi Anda.

ulin00 - Membuat Koneksi Database PHP

1. Menggunakan PDO (PHP Data Objects)

PDO adalah cara yang fleksibel dan aman untuk menghubungkan PHP ke berbagai jenis database, termasuk MySQL.

<?php

$host = 'localhost'; // Host database

$dbname = 'crud_example'; // Nama database

$username = 'root'; // Username database

$password = ''; // Password database

try {

    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "Koneksi berhasil!";

} catch (PDOException $e) {

    echo "Koneksi gagal: " . $e->getMessage();

}

?>

2. Menggunakan MySQLi (MySQL Improved)

MySQLi adalah ekstensi PHP yang khusus untuk MySQL. Ini mendukung pemrograman prosedural dan berorientasi objek.

Prosedural Style

<?php

$host = 'localhost'; // Host database

$username = 'root'; // Username database

$password = ''; // Password database

$dbname = 'crud_example'; // Nama database


// Membuat koneksi

$conn = mysqli_connect($host, $username, $password, $dbname);


// Cek koneksi

if (!$conn) {

    die("Koneksi gagal: " . mysqli_connect_error());

}

echo "Koneksi berhasil!";

?>


Object-Oriented Style:

<?php

$host = 'localhost'; // Host database

$username = 'root'; // Username database

$password = ''; // Password database

$dbname = 'crud_example'; // Nama database


// Membuat koneksi

$conn = new mysqli($host, $username, $password, $dbname);


// Cek koneksi

if ($conn->connect_error) {

    die("Koneksi gagal: " . $conn->connect_error);

}

echo "Koneksi berhasil!";

?>


3. Menggunakan MySQL (Deprecated)

Metode ini sudah tidak disarankan karena sudah dianggap usang (deprecated) sejak PHP 5.5.0 dan dihapus di PHP 7.0.0.

<?php

$host = 'localhost'; // Host database

$username = 'root'; // Username database

$password = ''; // Password database

$dbname = 'crud_example'; // Nama database


// Membuat koneksi

$conn = mysql_connect($host, $username, $password);


// Cek koneksi

if (!$conn) {

    die("Koneksi gagal: " . mysql_error());

}


// Memilih database

mysql_select_db($dbname, $conn);

echo "Koneksi berhasil!";

?>

4. Menggunakan Environment Variables

Metode ini menggunakan variabel lingkungan untuk menyimpan informasi koneksi database, yang bisa lebih aman dan fleksibel.

<?php

$host = getenv('DB_HOST'); // Host database

$dbname = getenv('DB_NAME'); // Nama database

$username = getenv('DB_USER'); // Username database

$password = getenv('DB_PASS'); // Password database


try {

    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "Koneksi berhasil!";

} catch (PDOException $e) {

    echo "Koneksi gagal: " . $e->getMessage();

}

?>

5. Menggunakan File Konfigurasi Terpisah

Anda bisa memisahkan informasi koneksi ke file terpisah dan mengimpornya ke file `config.php`.

File: `db_config.php`

<?php

return [

    'host' => 'localhost',

    'dbname' => 'crud_example',

    'username' => 'root',

    'password' => ''

];

?>



Baca Juga: loading

 File: `config.php`

<?php

$config = require 'db_config.php';


try {

    $conn = new PDO("mysql:host={$config['host']};dbname={$config['dbname']}", $config['username'], $config['password']);

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "Koneksi berhasil!";

} catch (PDOException $e) {

    echo "Koneksi gagal: " . $e->getMessage();

}

?>

 6. Menggunakan Singleton Pattern

Singleton pattern memastikan bahwa hanya ada satu instance koneksi database yang digunakan selama runtime aplikasi.

<?php

class Database {

    private static $instance = null;

    private $conn;


    private function __construct() {

        $host = 'localhost';

        $dbname = 'crud_example';

        $username = 'root';

        $password = '';


        try {

            $this->conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        } catch (PDOException $e) {

            echo "Koneksi gagal: " . $e->getMessage();

        }

    }


    public static function getInstance() {

        if (!self::$instance) {

            self::$instance = new Database();

        }

        return self::$instance;

    }


    public function getConnection() {

        return $this->conn;

    }

}


$db = Database::getInstance();

$conn = $db->getConnection();

echo "Koneksi berhasil!";

?>

Kesimpulan

PDO adalah pilihan yang baik jika Anda ingin fleksibilitas untuk bekerja dengan berbagai jenis database.

MySQLi adalah pilihan yang baik jika Anda hanya bekerja dengan MySQL dan ingin menggunakan fitur-fitur khusus MySQL.

Environment Variables dan File Konfigurasi Terpisah adalah pilihan yang baik untuk keamanan dan manajemen konfigurasi yang lebih baik.

Singleton Pattern berguna jika Anda ingin memastikan hanya ada satu koneksi database yang digunakan selama runtime aplikasi.

Pilih metode yang paling sesuai dengan kebutuhan dan lingkungan pengembangan.

Sumber resmi :

https://www.php.net/manual/en/book.pdo.php

https://www.php.net/manual/en/book.mysqli.php

https://www.php.net/manual/en/function.getenv.php

https://refactoring.guru/design-patterns/singleton/php/example

Muhammad Ulin Nuha
Muhammad Ulin Nuha PEEKCODE CHANNEL YOUTUBE Developer Android | Networking | Konten Creator peekcode YT | Galery | Pecinta Sholawat |

Posting Komentar