ホームページ > バックエンド開発 > PHPの問題 > PHPでOracleデータをクエリする方法

PHPでOracleデータをクエリする方法

PHPz
リリース: 2023-03-29 11:06:34
オリジナル
626 人が閲覧しました

PHP による Oracle データのクエリ

インターネット テクノロジの発展に伴い、データベースのクエリと操作を必要とする Web サイトやアプリケーションがますます増えています。 Oracle は、大量のデータを保存および管理できる、広く使用されているリレーショナル データベース管理システムです。 PHP は、Oracle データベースと通信できるサーバー側スクリプト言語として広く使用されています。この記事では、PHP を使用して Oracle データベースにクエリを実行する方法を学びます。

  1. 環境の準備

PHP を使用して Oracle データベースにクエリを実行する前に、対応するツールと環境を準備する必要があります。具体的な手順は次のとおりです。

1.1 PHP のインストール

まず、PHP をインストールする必要があります。 PHP 公式 Web サイトでは、Windows 版と Linux 版のインストール プログラムが提供されており、お使いのオペレーティング システムに応じて、対応するプログラムをダウンロードしてインストールできます。インストール プロセス中は、Oracle データベース ドライバーのインストールの選択に注意する必要があります。

1.2 Oracle クライアント ソフトウェアのインストール

PHP をインストールした後、PHP が Oracle データベースに接続できるように、Oracle クライアント ソフトウェアをインストールする必要があります。 Oracle の公式 Web サイトでは、Windows 版および Linux 版のクライアント ソフトウェア インストール プログラムが提供されており、ご使用のオペレーティング システムに応じて、対応するプログラムをダウンロードしてインストールできます。インストール プロセス中は、Oracle クライアント ソフトウェアのインストールの選択に注意する必要があります。

1.3 PHP.ini ファイルの構成

PHP インストール ディレクトリには php.ini ファイルがあり、PHP が Oracle データベースに接続できるように構成する必要があります。具体的な手順は次のとおりです。

  • php.ini ファイルで「extension=php_oci8.dll」または「extension=php_oci8.so」を検索し、その前にあるセミコロンを削除して有効にします。 OCI8拡張モジュール。
  • 次のコードを php.ini ファイルに追加します。
[OCI8]
extension=php_oci8.dll(或php_oci8.so)
oci8.privileged_connect = Off
oci8.max_persistent = -1
oci8.persistent_timeout = -1
oci8.ping_interval = 60
oci8.statement_cache_size = 20
oci8.default_prefetch = 100
ログイン後にコピー
  1. Oracle データベースに接続します

環境を構成した後、次のことができます。 PHP を使用して Oracle データベースに接続します。具体的な手順は次のとおりです。

2.1 接続情報の準備

Oracle データベースに接続する場合は、次の情報を指定する必要があります:

  • ホスト名または Oracle データベースの IP アドレス
  • Oracle データベースのポート番号 (デフォルトは 1521)
  • Oracle データベースの SID またはサービス名
  • Oracle データベースのユーザー名とパスワード
#この情報は、Oracle データベース管理者から入手できます。

2.2 OCI8 拡張機能を使用して Oracle データベースに接続する

PHP コードでは、OCI8 拡張機能を使用して Oracle データベースに接続できます。具体的な手順は次のとおりです。

$conn = oci_connect($user, $password, $host . '/' . $sid);
ログイン後にコピー
このうち、$user と $password は Oracle データベースのユーザー名とパスワード、$host は Oracle データベースのホスト名または IP アドレス、$sid です。 Oracle データベースの SID またはサービス名です。接続が成功すると、$conn が接続オブジェクトになります。

    クエリ操作の実行
接続が成功したら、OCI8 拡張機能を使用してクエリ操作を実行できます。具体的な手順は次のとおりです。

3.1 クエリ ステートメントの準備

クエリ ステートメントは SQL 言語で記述でき、その構文は Oracle SQL と同じです。

SELECT column1, column2, ... columnN
FROM table_name
WHERE [condition]
ログイン後にコピー
このうち、column1、column2、...columnN はクエリ列名、table_name はクエリテーブル名、[condition] はクエリ条件です。

3.2 OCI8 拡張機能を使用してクエリ操作を実行する

PHP コードでは、OCI8 拡張機能を使用してクエリ操作を実行できます。具体的な手順は次のとおりです。

$stid = oci_parse($conn, $query);
oci_execute($stid);
ログイン後にコピー
このうち、$conn は接続オブジェクト、$query はクエリ ステートメント、$stid はクエリ結果オブジェクトです。

    クエリ結果の処理
クエリ結果は、OCI8 拡張機能の関数を使用して処理できます。具体的な手順は次のとおりです。

4.1 クエリ結果の列名の取得

oci_num_fields() 関数を使用してクエリ結果の列番号を取得し、oci_field_name() 関数を使用してクエリ結果の列番号を取得できます。列名を取得します。

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; ++$i) {
    $colname = oci_field_name($stid, $i);
    echo "$colname\t";
}
ログイン後にコピー
4.2 クエリ結果レコードの取得

oci_fetch_array() 関数を使用してレコードの行を取得し、配列として保存できます。

while (($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
    foreach ($row as $item) {
        echo $item."\t";
    }
}
ログイン後にコピー
    完全なコード
以下は、PHP を使用して Oracle データベースにクエリを実行するための完全なコード例です。

$user = "用户名";
$password = "密码";
$host = "主机名/IP地址";
$sid = "SID/服务名";
$conn = oci_connect($user, $password, $host . '/' . $sid);
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$query = "SELECT * FROM table_name WHERE condition";
$stid = oci_parse($conn, $query);
oci_execute($stid);
$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; ++$i) {
    $colname = oci_field_name($stid, $i);
    echo "$colname\t";
}
while (($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
    foreach ($row as $item) {
        echo $item."\t";
    }
}
oci_free_statement($stid);
oci_close($conn);
ログイン後にコピー
上記は詳細な手順です。 PHP を使用して Oracle データベースにクエリを実行する場合。この記事を読んだ読者は、PHP で Oracle データベースに接続してクエリを実行する方法を理解できたと思います。

以上がPHPでOracleデータをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート