PHP 如何連線oracle資料庫進行資料讀取

2021-09-05 22:00:41 字數 1823 閱讀 8580

今天在給客戶修改一套報表程式時遇到的問題,php和oracle正好都不是我最熟悉的,但看了一些資料,勉強能改改。他們這套報表程式並不是很複雜,之前也是自己搗鼓搗鼓用php寫的。其實用不用php並不是關鍵,我的主要使命是要對報表系統的架構上做一些優化。經過我們的努力,原先很多分散的頁面都進行了整合,資料庫結構也進行了一些優化。

例如不管報表的資料來源是oracle,還是sql server,我們都可以使用同乙個頁面來完成查詢和展現。以後增加報表的時候,只需要在資料庫中進行配置即可,無需修改或者增加頁面。

另外,不管報表是要在瀏覽器中檢視還是要匯出excel格式,我們都可以用同乙個頁面來實現,無需用多個頁面。

關於在php中連線oracle的範例,摘錄乙個如下

(php 5, pecl oci8:1.1-1.2.4)

oci_fetch_all — 獲取結果資料的所有行到乙個陣列

說明intoci_fetch_all( resource $statement, array &$output [, int $skip [, int $maxrows [, int $flags]]] )

oci_fetch_all()從乙個結果中獲取所有的行到乙個使用者定義的陣列。oci_fetch_all()返回獲取的行數,出錯則返回false。skip

是從結果中獲取資料時,最開始忽略的行數(預設值是 0,即從第一行開始)。maxrows

是要讀取的行數,從第 skip

行開始(預設值是 -1,即所有行)。

注意:本函式對 phpnull值設定 null 字段。

flags

引數可以是下列值的任意組合:

oci_fetchstatement_by_row

oci_fetchstatement_by_column(預設值)

oci_num

oci_assoc

例 1583.oci_fetch_all()例子

<?php

/* oci_fetch_all example mbritton at verinet dot com (990624) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);

if ($nrows > 0)

echo "\n";

for ($i = 0; $i < $nrows; $i++)

echo "\n";

}echo "\n";

} else

echo "$nrows records selected

\n";

oci_free_statement($stmt);

oci_close($conn);

?>

有關 oci8 驅動程式執行的資料型別對映的細節,見驅動程式支援的資料型別。

oci_fetch_all()如果出錯則返回false

注意:在 php 5.0.0 之前的版本必須使用 ocifetchstatement() 替代本函式。該函式名仍然可用,為向下相容作為oci_fetch_all()的別名。不過其已被廢棄,不推薦使用。

PHP遠端連線oracle

系統 windows 2003 sp1 環境 php5.20 apache 2.0.59 資料庫為 oracle8i 執行在192.168.1.2這台伺服器上。1 在php的配置檔案php.ini中,取消extension php oci8.dll的注釋。還有一行為extension php ora...

FireDAC如何連線ORACLE資料庫

unidac對oracle的direct連線,不需要安裝oracle客戶端dll,deploy時真的是方便又快捷。firedac連線oracle,在沒有oracle client的情況下,是可以連線上的。前提是需要檔案oci.dll oraocci11.dll oraociei11.dll oras...

PHP如何連線MySQL資料庫

php連線mysql資料庫 準備工作 在xampp軟體的安裝目錄 php ext目錄中 php mysql.dll和php mysqli.dll檔案必須存在 在xampp軟體的安裝目錄 php目錄中 php.ini檔案 php的主配置檔案 extension php mysql.dll extens...