Laravel框架連接Oracle數據庫


windows 系統

一、PHP開啟oci8

1.下載 Oracle Instant Client

下載地址:https://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html

下載后解壓到系統盤(本人解壓到D盤)

設置系統環境變量並重啟電腦

2.下載VC_redist.x64,安裝

3.配置php.ini

extension=php_oci8_12c.dll
extension=php_pdo_oci.dll

去掉分號,然后重啟服務(Apache or IIS)

查看是否開啟

 二、composer 添加第三方的組件 yajra/laravel-oci8

1.換源

composer config -g repo.packagist composer https://packagist.phpcomposer.com

2.安裝

composer require yajra/laravel-oci8 -vvv

三、使用第三方組件

1.修改在config文件夾下的database.php
修改:’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', ''),
        ],

2.修改ConnectionFactory.php中的createConnector函數和createConnection函數
(文件在vendor/laravel/framework/src/illuminate/Database/Connectors/ConnectionFactory.php)

2.0. ConnectionFactory類引用以下聲明

use Yajra\Oci8\Connectors\OracleConnector;
use Yajra\Oci8\Oci8Connection;

2.1.createConnector函數:

case 'sqlsrv':
                return new SqlServerConnector;
            case 'oracle':
                return new OracleConnector;

2.2createConnection函數:

case 'sqlsrv':
                return new SqlServerConnection($connection, $database, $prefix, $config);
            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的支持配置

四、測試

 

參考:

https://blog.csdn.net/q393364227/article/details/78458690

https://www.meiwen.com.cn/subject/imfljqtx.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM