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 的加粗标题(如下图所示),则安装成功。
在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的话,还要参考 这里 的文档进一步了解使用方法。