thinkphp5連接oracle資料庫
根據目前thinkphp開發多數使用的是mysqsl資料庫,很少有使用oracle資料庫的,目前有需求需要使用oracle資料庫。
通過查閱別人的博客,踩了很多坑終於找到一個可以鏈接oralce資料庫的方法。
需要使用到think-oracle。
首先需要下載oracle客戶端,然後配置oci,修改php.ini文件。
1
1,Oracle官方網站下載安裝Oracle客戶端。
下載地址:
http://www.oracle.com/technetwork/cn/database/features/instant-client/index-097480.html
1
選擇一個合適的版本,下載,**然後將解壓後的目錄添加到系統變數(重要)**
2,下載PHP 擴展Oracle客戶端 DLL鏈接文件。
http://pecl.php.net/package/oci8 選擇DLL下載;
1
將下載的文件接下dll 文件到 PHP的DLL擴展目錄
3,php.ini 配置文件中開啟 Oracle連接擴展。
extension=php_pdo_oci.dll
extension=php_oci8.dll
1
2
打開phpinfo查看是否有oci8的相關信息,如果有則說明 開啟拓展成功了,沒有的話,需要自己費點時間看一下原因
二、下載ThinkPHP Oracle資料庫擴展驅動類;
1,Oracle資料庫擴展驅動類下載地址。
https://github.com/top-think/think-oracle
1
這裡特別說明一下,5.0版本的請下載v1.*版本的think-oracle,5.1版本的請下載v2.*版本的think-oracle,不然會出現兼容性問題
將下載好的文件解壓,會得到src目錄下的兩個文件,Builder.php和Connection.php,(這裡我以5.0版本為例,我下載的是v1.3版本的)
(1)將Builder.php和Connection.php分別放到: hinkphplibrary hinkdb對應的builder和connector目錄並都改名為Oracle.php;
(2)修改builder目錄下的Oracle.php文件,如下:
namespace thinkoracle;
use thinkdbBuilder as BaseBuilder;
use thinkdbQuery;
/**
* Oracle資料庫驅動
*/
class Builder extends BaseBuilder
1
2
3
4
5
6
7
8
9
改為
namespace thinkdbuilder;
use thinkdbBuilder;
use thinkException;
/**
* Oracle資料庫驅動
*/
class Oracle extends Builder
1
2
3
4
5
6
7
8
9
(3)修改connector目錄下的Oracle.php文件,如下:
namespace thinkoracle;
use PDO;
use thinkdbConnection as BaseConnection;
/**
* Oracle資料庫驅動
*/
class Connection extends BaseConnection
1
2
3
4
5
6
7
8
9
改為
namespace thinkdbconnector;
use PDO;
use thinkdbConnection;
use thinkLog;
/**
* Oracle資料庫驅動
*/
class Oracle extends Connection
1
2
3
4
5
6
7
8
9
(4)配置Oracle連接參數,如下:
return [
// 資料庫類型
"type" => "oracle",
// 伺服器地址
"hostname" => "127.0.0.1",
// 資料庫名
"database" => "orcl",
// 用戶名
"username" => "test",
// 密碼
"password" => "你的Oracle資料庫密碼",
// 埠
"hostport" => "1521",
// 連接dsn
"dsn" => "",
// 資料庫連接參數
"params" => [],
// 資料庫編碼默認採用utf8
"charset" => "utf8",
// 資料庫表前綴
"prefix" => "",
// 資料庫調試模式
"debug" => true,
// 資料庫部署方式:0 集中式(單一伺服器),1 分散式(主從伺服器)
"deploy" => 0,
// 資料庫讀寫是否分離 主從式有效
"rw_separate" => false,
// 讀寫分離後 主伺服器數量
"master_num" => 1,
// 指定從伺服器序號
"slave_no" => "",
// 是否嚴格檢查欄位是否存在
"fields_strict" => true,
// 數據集返回類型
"resultset_type" => "array",
// 自動寫入時間戳欄位
"auto_timestamp" => false,
// 時間欄位取出後的默認時間格式
"datetime_format" => "Y-m-d H:i:s",
// 是否需要進行SQL性能分析
"sql_explain" => false,
];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
後面就可以自己連接資料庫輸出數據了;
打開今日頭條,查看更多精彩圖片※簡談Kafka中的NIO網路通信模型
※MyBatis分頁插件的配置
TAG:程序員小新人學習 |