Laravel框架连接Oracle数据库
2017-11-06 16:06
204 查看
一、PHP开启oci8
1.到官网下载oci8扩展(http://pecl.php.net/package/oci8)
php_oci8.dll
php_oci8_11g.dll
php_oci8_12c.dll
三个拓展文件分别对应Oracle10g、11g、12g
将拓展文件复制到php文件夹里面的ext文件夹里面
2.配置php.ini
oci8.privileged_connect = On
extension=php_oci8_11g.dll
extension=php_pdo_oci.dll
去掉分号,然后重启服务(Apache or IIS)
3.查看是否开启
phpinfo();
![](https://img-blog.csdn.net/20171106155059340?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcTM5MzM2NDIyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
至此可以用oci_connect连接Oracle数据库,如下:
二、composer 添加第三方的组件 yajra/laravel-oci8
1.安装 composer (https://getcomposer.org/Composer-Setup.exe)
注意:composer命令需要到Laravel项目根目录运行
2.换源
1.到官网下载oci8扩展(http://pecl.php.net/package/oci8)
php_oci8.dll
php_oci8_11g.dll
php_oci8_12c.dll
三个拓展文件分别对应Oracle10g、11g、12g
将拓展文件复制到php文件夹里面的ext文件夹里面
2.配置php.ini
oci8.privileged_connect = On
extension=php_oci8_11g.dll
extension=php_pdo_oci.dll
去掉分号,然后重启服务(Apache or IIS)
3.查看是否开启
phpinfo();
至此可以用oci_connect连接Oracle数据库,如下:
$conn = oci_connect('tjris', 'tjris', 'ORCL'); if (!$conn) { $e = oci_error(); print htmlentities($e['message']); exit; }else { echo "连接oracle成功!"; }
二、composer 添加第三方的组件 yajra/laravel-oci8
1.安装 composer (https://getcomposer.org/Composer-Setup.exe)
注意:composer命令需要到Laravel项目根目录运行
2.换源
composer config -g repo.packagist composer https://packagist.phpcomposer.com[/code]
3.查看Laravel安装composer install
4.修改根目录的composer.json
“require-dev”: { …… “yajra/laravel-oci8”:”5.3.1”}
然后:composer?update
假如:”yajra/laravel-oci8”:”5.3.*”(不注明版本)
则运行:composer require yajra/laravel-oci8:”5.3.*”
三、使用第三方组件
1.修改在config文件夹下的database.php
修改:’default’ => env(‘DB_CONNECTION’, ‘oracle’),
增加如下:'oracle' => [ 'driver' => 'oracle', 'tns' => env('DB_TNS', ''), 'host' => env('DB_HOST', ''), 'port' => env('DB_PORT', '1521'), 'database' => env('DB_DATABASE', ''), 'username' => env('DB_USERNAME', ''), 'password' => env('DB_PASSWORD', ''), '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.1createConnector函数: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);
2.3 修改config/app.php
在providers里面增加
Yajra\Oci8\Oci8ServiceProvider::class,
2.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的支持配置
四、测试
相关文章推荐
- EF框架连接Oracle数据库问题
- SSI框架下同时连接mysql和Oracle数据库
- laravel 框架 服务器部署 连接其他服务器 redis 和 mysql
- Laravel框架实现同时连接多个数据库
- 在MyEclipse环境下将采用SSH2框架的项目从连接到MySQL数据库改成连接到Oracle数据库
- mac 环境下laravel 5.1框架与数据库的连接和配置问题
- Maven,SSM框架搭建(连接ORACLE数据库)
- 使用JSP连接ORACLE数据库做的一个简单登录框架
- springMVC框架中,在hib-config.xml配置sqlserver2008数据库连接的代码
- 成功连接oracle数据库后读不出来数据!
- Laravel框架使用Seeder实现自动填充数据功能
- 使用四种框架分别实现1百万websocket常连接的服务器
- JDBC连接Oracle数据库问题
- Mina长连接框架实现Android客户端与服务器端通信
- 配置plsql远程连接oracle数据库
- navicat 客户端连接oracle数据库 异常处理 can't load oci dll 和 Instant Client package...
- weka-Oracle数据库连接及以ARFF文件导出[2]
- C#连接Oracle数据库
- J2EE应用中与Oracle数据库的连接
- Laravel框架数据库CURD操作、连贯操作总结