當前位置:
首頁 > 知識 > thinkphp5連接oracle資料庫

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

後面就可以自己連接資料庫輸出數據了;

thinkphp5連接oracle資料庫

打開今日頭條,查看更多精彩圖片

thinkphp5連接oracle資料庫

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

簡談Kafka中的NIO網路通信模型
MyBatis分頁插件的配置

TAG:程序員小新人學習 |