首先确定你的PHP已经支持oracle数据库的链接。PHP需要安装OCI8扩展。
确定PHP可以链接ORACLE数据库之后。我们使用composer安装laravel支持oracle链接的插件 yajra/laravel-oci8
欢迎访问个人博客 guanchao.site
欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”
一:使用composer安装 yajra/laravel-oci8
1:运行如下命令:
bash
复制代码
composer require yajra/laravel-oci8
2:安装过程中可能会报错,不要纠结那些报错,最简单的解决办法:
试试
arduino
复制代码
php artisan cache:clear
如果这不起作用,请删除你的vendor
目录和composer.lock
文件并重新运行composer install
。
二:配置laravel使用oracle数据库
首先说明一下:我这里主要使用的是mysql数据库,oracle数据库只作为偶尔取数据使用。
1:修改在config文件夹下的database.php\
如果你想默认使用oracle数据库,则需要修改:’default’ => env(‘DB_CONNECTION’, ‘oracle’),
但是我这里就不需要了。
增加如下:
dart
复制代码
'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
2:修改ConnectionFactory.php中的createConnector函数和createConnection函数
(1):文件在vendor/laravel/framework/src/illuminate/Database/Connectors/ConnectionFactory.php
(2):添加如下的命名空间引用:
ini
复制代码
use YajraOci8ConnectorsOracleConnector; use YajraOci8Oci8Connection;
(3):createConnector函数:
添加如下代码:
arduino
复制代码
case 'oracle': return new OracleConnector;
如下图所示:
(4):createConnector函数:
添加如下代码:
bash
复制代码
case 'oracle': return new Oci8Connection($connection, $database, $prefix, $config);
如下图所示:
3:修改config/app.php\
在providers里面增加
arduino
复制代码
YajraOci8Oci8ServiceProvider::class,
4:修改processInsertGetId函数\
(在vendor/yajra/laravel-oci8/src/Oci8/Query/processors/OracleProcessor.php)
ruby
复制代码
$statement->bindParam($parameter, $id, PDO::PARAM_STR, 20);//PDO::PARAM_STR 主键的 数据类型
至此已完成了laravel链接oracle的所有配置支持
三:测试
ini
复制代码
$openList = DB::connection('oracle')->select("SELECT * FROM xxxxxx"); Var_dump($openList);
有结果,不报错,即成功。
有好的建议,,请在下方输入你的评论。
欢迎访问个人博客 guanchao.site
欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”