laravel5.3连接oracle数据库
1.下载oracle教程
https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html
2.下载oci8相关扩展:http://pecl.php.net/package/oci8,将将解压出来php_oci8.dll、php_oci8_11g.dll、php_oci8_12c.dll文件放置于php的ext文件夹下。
3.再php.ini文件夹中开启扩展(将;去掉),没有则进行添加
extension=php_oci8_12c.dll
extension=php_oci8_11g.dll
extension=php_oci8.dll
4.进行测试,如果出现以下界面则说明开启扩展成功,这时候php就可以连接上oracle了。
oci8连接oracle数据库:
$conn = oci_connect('test', 'test', 'localhost/ORCL');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);exit;
}else {
echo "连接成功!";
}
5.laravel连接oracle数据库:
参考网址:https://blog.****.net/q393364227/article/details/78458690、https://packagist.org/packages/yajra/laravel-oci8
使用composer来加载第三方的包:
composer require yajra/laravel-oci8:”5.3.*“;
6.修改conif文件夹下的database.php文件
添加代码:
修改默认数据库连接:
'default' => env('DB_CONNECTION', 'oracle'),
…
添加orcle相关参数:
'oracle' => [
'driver' => 'oracle',
'host' => 'localhost',
'port' => '1521',
'database' => '',
'service_name' => 'ORCL',
//自己再oracle中创建的用户名和密码
'username' => 'test',
'password' => 'test',
'charset' => 'utf8',
'prefix' => '',
]
7.vendor/laravel/framework/src/illuminate/Database/Connectors/ConnectionFactory.php类中添加:
createConnector方法:
case 'oracle':
return new OracleConnector;
createConnection方法:
case 'oracle':
return new Oci8Connection($connection, $database, $prefix, $config);
config/app.php文件:
providers数组中增加Yajra\Oci8\Oci8ServiceProvider::class,
vendor/yajra/laravel-oci8/src/Oci8/Query/processors/OracleProcessor.php类:
修改:
Yajra\Oci8\Oci8ServiceProvider::class,
8.进行测试:
$user=DB::table('testtable')->get();
dump($user);exit();
测试结果: