windows 系統
一、PHP開啟oci8
1.下載 Oracle Instant Client
下載后解壓到系統盤(本人解壓到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的支持配置
四、測試
參考: