shakahl / laravel-eloquent-mysqli by shakahl

MySQLi driver (connector) for Laravel 8.x Eloquent database
5,641
21
3
Package Data
Maintainer Username: shakahl
Maintainer Contact: szelpalsoma@gmail.com (Soma Szelpal)
Package Create Date: 2017-05-13
Package Last Update: 2024-03-12
Language: PHP
License: MIT
Last Refreshed: 2024-12-16 15:02:53
Package Statistics
Total Downloads: 5,641
Monthly Downloads: 38
Daily Downloads: 4
Total Stars: 21
Total Watchers: 3
Total Forks: 15
Total Open Issues: 3

shakahl/laravel-eloquent-mysqli

MySQLi driver (connector) for Laravel 5.4 Eloquent database

Installation

  • Install via composer
composer require shakahl/laravel-eloquent-mysqli
  • After installing, add provider on config/app.php on your project.
// app.php

    'providers' => [
        ...

        'LaravelEloquentMySQLi\MySQLiServiceProvider',
    ],

Usage

You should configure your database connection to use the mysqli driver.

Example

//...
  'connections' => [
        'mysql' => [
            'driver'    => 'mysqli', // Sets mysqli driver
            'host'      => env('DB_HOST', 'localhost'),
            'port'      => env('DB_PORT', 3306),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => env('DB_CHARSET', 'utf8'),
            'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),
            'prefix'    => env('DB_PREFIX', ''),
            'timezone'  => env('DB_TIMEZONE', '+00:00'),
            'strict'    => env('DB_STRICT_MODE', false),
        ],
    ]
//...

Notes

Accessing underlying mysqli instance

There are some inconsistent methods since Laravel only supports PDO officially. You can access the raw, underlying MySQLi instance using the following methods on a connection instance:

$mysqli = DB::connection()->getMySqli();
// or
$mysqli = DB::connection()->getReadMySqli();
// or
$mysqli = DB::connection()->getPdo();
// or
$mysqli = DB::connection()->getReadPdo();

Escaping

Unfortunately PHP's mysqli driver does not support named parameter binding so this connector uses custom implementation for it.