Laravel连接Oracle的资料较少,又会遇到不少坑,我就分享一下使用经验

PHP拓展安装

首先php需要安装oci8扩展,确认你的oracle instant client版本(我的是11.2),到 这里 点击Download下的DLL,下载所需的dll文件。注意你的php是ts(线程安全)还是nts(非线程安全),64位还是32位的,不要弄错。下载完成后放置到 php/ext 文件夹下,同时在php.ini中添加 extension=oci8_11g 在其他extension的下面。
接着在php代码中使用phpinfo()函数,如果看到 oci8 的加粗标题(如下图所示),则安装成功。
12.png

在Laravel 5中使用Oracle DB driver

我们使用一个开源的包用于在Laravel中连接Oracle,附上GitHub地址:yajra/laravel-oci8

使用方法也很简单,在项目根目录下,打开命令行工具输入:

composer require yajra/laravel-oci8:"5.5.*"

通过composer自动下载所需的包文件,然后在config/app.php 中为包注册服务,在providers里添加

Yajra\Oci8\Oci8ServiceProvider::class,

继续在命令行工具中输入

php artisan vendor:publish --tag=oracle

发布配置文件,这会生成config/oracle.php用于数据库连接配置。

'oracle' => [
    'driver'        => 'oracle',
    'tns'           => env('DB_TNS', ''),
    'host'          => env('DB_HOST', ''),
    'port'          => env('DB_PORT', '1521'),
    'database'      => env('DB_DATABASE', ''),
    'username'      => env('DB_USERNAME', ''),
    'password'      => env('DB_PASSWORD', ''),
    'charset'       => env('DB_CHARSET', 'AL32UTF8'),
    'prefix'        => env('DB_PREFIX', ''),
    'prefix_schema' => env('DB_SCHEMA_PREFIX', ''),
],

数据库的连接就不用我多说了吧,在这里有一个小坑,charset如果想使用UTF-8,那么应该写成UTF8,否则中文会乱码。

Now,已经大功告成,使用DB::select() 查询数据试试吧,要想使用Eloquent的话,还要参考 这里 的文档进一步了解使用方法。

Last modification:July 19, 2018
If you think my article is useful to you, please feel free to appreciate