laravel5.8(十四)連線oracle資料庫
首先確定你的PHP已經支援oracle資料庫的連結。PHP需要安裝OCI8擴充套件。
確定PHP可以連結ORACLE資料庫之後。我們使用composer安裝laravel支援oracle連結的外掛 yajra/laravel-oci8
一:使用composer安裝 yajra/laravel-oci8
1:執行如下命令:
composer require yajra/laravel-oci8
2:安裝過程中可能會報錯,不要糾結那些報錯,最簡單的解決辦法:
試試
php artisan cache:clear
如果這不起作用,請刪除你的vendor目錄和composer.lock檔案並重新執行composer install。
二:配置laravel使用oracle資料庫
首先說明一下:我這裡主要使用的是mysql資料庫,oracle資料庫只作為偶爾取資料使用。
1:修改在config資料夾下的database.php
如果你想預設使用oracle資料庫,則需要修改:’default’ => env(‘DB_CONNECTION’, ‘oracle’),
但是我這裡就不需要了。
增加如下:
'oracle' => [ 'driver' => 'oracle', 'tns' => env('DB_TNS', ''), 'host' => env('DB_HOST', '10.0.101.177'), 'port' => env('DB_PORT', '1521'), 'database' => env('DB_DATABASE', 'MPPAYUAT'), 'username' => env('DB_USERNAME', 'payment'), 'password' => env('DB_PASSWORD', 'payment'), 'charset' => env('DB_CHARSET', 'AL32UTF8'), 'prefix' => env('DB_PREFIX', ''), 'prefix_schema' => env('DB_SCHEMA_PREFIX', ''), ],
記得將資料改成你自己的。
具體連結陣列資訊請參照github
https://github.com/yajra/laravel-oci8
2:修改ConnectionFactory.php中的createConnector函式和createConnection函式
(1):檔案在vendor/laravel/framework/src/illuminate/Database/Connectors/ConnectionFactory.php
(2):新增如下的名稱空間引用:
use Yajra\Oci8\Connectors\OracleConnector; use Yajra\Oci8\Oci8Connection;
(3):createConnector函式:
新增如下程式碼:
case 'oracle':
return new OracleConnector;
如下圖所示:
(4):createConnector函式:
新增如下程式碼:
case 'oracle':
return new Oci8Connection($connection, $database, $prefix, $config);
如下圖所示:
3:修改config/app.php
在providers裡面增加
Yajra\Oci8\Oci8ServiceProvider::class,
4:修改 processInsertGetId 函式
(在vendor/yajra/laravel-oci8/src/Oci8/Query/processors/OracleProcessor.php)
$statement->bindParam($parameter, $id, PDO::PARAM_STR, 20);//PDO::PARAM_STR 主鍵的 資料型別
至此已完成了laravel連結oracle的所有配置支援
三:測試
$openList = DB::connection('oracle')->select("SELECT * FROM xxxxxx");
Var_dump($openList);
有結果,不報錯,即成功。
原文連結:https://guanchao.site/index/article/articledetail.html?artid=qoFhpAs1J
有好的建議,,請在下方輸入你的評論。
歡迎訪問個人部落格
https://guanchao.site
歡迎訪問小程式: