shakahl/laravel-eloquent-mysqli

Laravel 8.x Eloquent 数据库的 MySQLi 驱动(连接器)

dev-master 2020-12-09 21:46 UTC

This package is not auto-updated.

Last update: 2024-09-15 02:16:42 UTC


README

MySQLi 驱动(连接器)用于 Laravel 8.x Eloquent 数据库

安装

  • 使用 composer 安装
composer require shakahl/laravel-eloquent-mysqli
  • 安装后,请将提供者在您的项目中的 config/app.php 配置文件中添加。
// app.php

    'providers' => [
        ...

        'LaravelEloquentMySQLi\MySQLiServiceProvider',
    ],

使用方法

您应该配置数据库连接以使用 mysqli 驱动。

示例

//...
  '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),
        ],
    ]
//...

注意

访问底层的 mysqli 实例

由于 Laravel 只官方支持 PDO,因此存在一些不一致的方法。您可以使用以下方法在连接实例上访问原始的底层 MySQLi 实例:

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

转义

不幸的是,PHP 的 mysqli 驱动不支持命名参数绑定,因此此连接器使用自定义实现。