Laravel 使用 Oracle 資料庫

Hesunfly發表於2020-10-27

    由於 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

Laravel 使用 Oracle 資料庫

我這裡提示未找到包,解決方式:可以進入 oci8 的網站 http://pecl.php.net/package/oci8。

Laravel 使用 Oracle 資料庫

然後將包的名稱替換為複製的連結即可

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

在安裝過程中,需要我們輸入 oracle home 的位置,直接填寫 instantclient,/usr/local/instantclient_12_2 即可,等待完成安裝。

Laravel 使用 Oracle 資料庫

如果安裝沒有出現錯誤就表明安裝成功了,重啟 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!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章