Laravel 使用 Oracle 数据库

2020-09-23 16:13 PHP 356

    由于 Laravel 原生不支持 Oracle,项目又需要使用 Oracle,所以需要使用组件来满足。laravel-oci8 是一款专为 Laravel 开发的支持 Oracle 数据库的组件,安装这个组件需要依赖 php-oci8 扩展,这里记录一下安装和配置的过程。我使用的 Mac,下面基于 MacOS 来安装,PHP 版本是7.2。

安装 oci8 扩展

1、先安装 Oracle 的客户端 Instantclient,下载地址:传送门
2、选择对应的版本,然后下载以下文件:

instantclient-basic-macos.x64-12.2.0.1.0-2.zip 
instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip
instantclient-sdk-macos.x64-12.2.0.1.0-2.zip

3、将三个包解压到同一目录下

$ sudo unzip instantclient-basic-macos.x64-12.2.0.1.0-2.zip -d /usr/local/
$ sudo unzip instantclient-sdk-macos.x64-12.2.0.1.0-2.zip -d /usr/local/
$ sudo unzip instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip -d /usr/local/

上面的命令会解压到/usr/local/instantclient_12_2
4、创建软链接:

$ sudo ln -s /usr/local/instantclient/12.2.0.1.0/sdk/include/*.h /usr/local/include/
$ sudo ln -s /usr/local/instantclient/12.2.0.1.0/sqlplus /usr/local/bin/
$ sudo ln -s /usr/local/instantclient/12.2.0.1.0/*.dylib /usr/local/lib/
$ sudo ln -s /usr/local/instantclient/12.2.0.1.0/*.dylib.12.1 /usr/local/lib/
$ sudo ln -s /usr/local/lib/libclntsh.dylib.12.1 /usr/local/lib/libclntsh.dylib

5、安装扩展
直接使用 pecl 安装即可,Mac 默认没有 pecl,需要自己安装。

$ pecl install oci8

image
我这里提示未找到包,解决方式:可以进入 oci8 的网站 http://pecl.php.net/package/oci8。
image
然后将包的名称替换为复制的链接即可

$ pecl install http://pecl.php.net/get/oci8-2.2.0.tgz

在安装过程中,需要我们输入 oracle home 的位置,直接填写 instantclient,/usr/local/instantclient_12_2 即可,等待完成安装。
image
如果安装没有出现错误就表明安装成功了,重启 php-fpm 使扩展生效。

安装和使用 laravel-oci8

安装

$ composer require yajra/laravel-oci8

然后在config/database.php中添加数据库配置

'connections' => [
    'oracle' => [
        'driver' => 'oracle',
        'host' => '',
        'port' => '1521',
        'database' => '',
        'service_name' => '',
        'username' => '',
        'password' => '',
        'charset' => '',
        'prefix' => '',
    ],
    ...
    ...
]

正确填写完配置就可以使用 oracle 了。

$res = DB::connection('oracle')->table('user')->limit(10)->get();

END!

手机扫码浏览 手机扫码查看
赞赏码 给点吧😭