ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP を使用した Oracle ストアド プロシージャの呼び出しチュートリアル

PHP_PHP を使用した Oracle ストアド プロシージャの呼び出しチュートリアル

WBOY
リリース: 2016-07-21 16:07:59
オリジナル
1027 人が閲覧しました

PHP プログラムはストアド プロシージャを使用してデータベースにアクセスできます。ストアド プロシージャを使用する方が保守が簡単だと考える人もいます。しかし、この問題については、人によって意見が異なります。ストアド プロシージャを使用するということは、DBA と開発者がより緊密に協力する必要があることを意味すると思います。それらのうちの 1 つが変更されると、明らかに維持が困難になります。
しかし、ストアド プロシージャを使用すると、速度と効率という最も明白な利点が少なくとも 2 つあります。
ストアド プロシージャを使用すると明らかに高速になります。効率の観点から、アプリケーションが一連の SQL 操作を一度に実行する必要がある場合、PHP と ORACLE の間を行き来する必要があります。ラウンド数を減らすために、アプリケーションをデータベースに直接配置する方が良いでしょう。出張が可能になり、効率が向上します。
ただし、インターネット アプリケーションでは速度が非常に重要であるため、ストアド プロシージャを使用する必要があります。
私も少し前に PHP を使用してストアド プロシージャを呼び出し、次の例を実行しました。

コード:---------------------------------------------- -- ----------------------------------

//TEST テーブルを作成する

CREATE TABLE TEST (

ID NUMBER (16) NOT NULL,
NAME VARCHAR2(30) NOT NULL,
PRIMARY KEY (ID)
);

//データを挿入

INSERT INTO TEST VALUES (5, 'PHP_BOOK');


//ストアド プロシージャを作成します

CREATE OR REPLACE PROCEDURE PROC_TEST (

p_id IN OUT NUMBER,
p_name OUT VARCHAR2
) AS
BEGIN
SELECT NAME INTO p_name
FROM TEST
WHERE ID = 5;
END PROC_TEST;
/

---------------------------------------------------- ---- ------------------------

PHP コード:------------- ---------------------------------------------------- ---- -------------

//データベース接続を確立します

$user = "scott";

$conn_str = "tnsname"; string (cstr: Connection_STRing)
$remote = true //リモート接続するかどうか
if ($remote) {
$conn = OCILogon($user, $password, $conn_str)
}
else {
$conn = OCILogon ($user, $password);
}

// バインディングを設定します
$id = 5; "; // バインディング用に準備された PHP 変数名

/**ストアド プロシージャを呼び出す SQL ステートメント (sql_sp: SQL_StoreProcedure)
* 構文:
* BEGIN ストアド プロシージャ名 ([[:] パラメータ]); END;

* コロンの追加は、パラメータが位置であることを示します

**/
$s ql_sp = "BEGIN PROC_TEST( :id, :name); END;";

//Parse
$stmt = OCIParse($conn, $sql_sp);

//バインディングを実行

OCIBindByName($stmt, ":id", $id, 16 ); // パラメーターの説明: PHP 変数 $id をposition:id にバインドし、バインド長を 16 ビットに設定します
OCIBindByName($stmt, ":name", $name, 30);

//Execute
OCIExecute( $stmt);

//Result

echo "名前は : $name< ;br>";

?>



http://www.bkjia.com/PHPjc/314948.html

www.bkjia.com

http://www.bkjia.com/PHPjc/314948.html技術記事 PHP プログラムはストアド プロシージャを使用してデータベースにアクセスできますが、ストアド プロシージャを使用する方が保守が簡単だと考える人もいますが、この問題については人によって意見が異なると思います...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート