ホームページ >バックエンド開発 >PHPチュートリアル >Oracleのphpクラスインスタンスの操作
//[警告]: 許可なく変更しないでください
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
//
// 【ファイル名】:C_ora_db.inc
// [関数]: Oracle パブリック関数クラス
//
// [最終更新日]: 2001/05/11[cxx]
// [変数の定義規則]: ‘C_’ = 文字型、‘I_’ = 整数型、‘N_’ = 数値型、‘L_’ = ブール型、‘A_’ = 配列型
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// ※db_logon() データベース接続を開く
// db_query()
// ※ DB_CHANGE () データベース変更ユニバーサル関数 (挿入、削除、更新)
// ※db_insert() db_change() を直接呼び出します
// ※db_delete()削除を通じて、db_change() を直接呼び出します
// ※ db_update() 更新、db_change() を直接呼び出す
// ※db_commit()
// ※db_rollback() ※トランザクションのロールバック
// ※db_logoff() データベース接続を切断します
//------------------------------------------------ ------------------------------------------
クラス c_ora_db
{
//------------------------------------------------ ------------------------------------------
// 変数の定義
//------------------------------------------------ ------------------------------------------
= ""
= ""
= ""
var $I_linkID = 0;
var $I_stmtID = 0;
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// 関数名: db_logon()
// 関数: データベース接続を開く
// パラメータ: なし
// 戻り値: 接続ハンドル (整数)
// 注: なし
//------------------------------------------------ ------------------------------------------
関数 db_logon()
$this->I_linkID = @OCILogon($this->C_user,$this->C_passwd,$this->C_db);
If ($this->I_linkID == 0){AlertExit('データベース リンクに失敗しました。DBA に連絡してください!');}
$ this-> を返します。
}
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// 関数名: db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1)
// 関数:
を選択
// パラメータ: $C_sql SQL ステートメント
// $ a_define でフィールドをバインドします。配列型
//質問されています
// $ i_end レコード終了
// 戻り値: 2次元配列($A_rs)
// 注: 対応するフィールドの値には、数値 0、1、2.... を使用してアクセスすることも、フィールド名をクエリすることによってアクセスすることもできます
;
// $A_rs[0][0] または $A_rs[0]['NAME'] または $A_rs[0]['name'] を使用すると、最初のレコードの NAME フィールドにアクセスできます
// $I_start、$I_end はページングで使用されるパラメータです。
//------------------------------------------------ ------------------------------------------
関数 db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1)
If (!$C_sql){AlertExit("Incompleteparameters!");}//パラメータを確認します
//接続検出
If ($this->I_linkID == 0){AlertExit('データベース リンクに失敗しました。DBA に連絡してください!');}
//フォーマット検出
$this -> I_stmtID = OCiparse($this -> I_linkID,$C_sql);
If (!$this -> I_stmtID){AlertExit('SQL 形式エラー! プログラマに連絡してください');}
//バインドされたフィールドが指定されていない場合は、SQL ステートメントからフェッチされます
if($A_define=="")
$A_Cur =explode("select",$C_sql);$A_Cur =explode("from",$A_Cur[1]);
$A_define =explode(",",$A_Cur[0]);
}
//データベーステーブルのフィールドをバインドします
If(gettype($A_define) == "array") //クエリ列は配列です
for($i=0;$i
for($i=0;$i
}
elseif(trim($ a_define)<> "")
$A_define_up = トリム(strtoupper($A_define));
OCIDefineByName($this -> I_stmtID,"$A_define_up",&$$A_define);
}
//バインドされた SQL ステートメントを実行します
If(!OCIExecute($this -> I_stmtID))
実行エラー:SQL エラー:$C_sql
";
false を返します
}
//レコードを取得します
while (OCIFetchInto($this -> I_stmtID,&$cur,OCI_ASSOC))
// クエリされたすべてのレコードを取得します
if ($I_start == -1)
If (gettype($A_define) == "array") //クエリ列は配列です
for ($i=0;$i
$$ a_define [$ i]
$ A_RS [$ LOWER] [$ i] = $ $ a_define [$ i] // デジタルアクセスを使用します
;
$ A_RS [$ low] [$ a_define [$ i]] = $ $ a_define [$ i] // 小さいアクセスを使用します
;
$A_rs[$ lower][$A_define_up[$i]] = $$A_define[$i];
Elseif (trim ($ a_define) & lt; & gt; "") // クエリリストは 1 つだけです
If ($cur[$A_define_up] <> $$A_define)
$ A_RS [$ LOWER] [0] = $ $ a_define // デジタルアクセスを使用します
;
$A_rs[$ lower][$A_define] = $$A_define;
$A_rs[$ lower][$A_define_up] = $$A_define;
$ LOWER ++ // 入札プラス 1
}
// 指定されたレコードを取得します (ページングで使用)
if ($I_start <> -1)
If ($cnt >= $I_start)
$cnt++;
If ($I_end - $I_start <> 0)
$I_終了--;
if (gettype($A_define) == "配列")
{
for($i=0;$i
if ($cur[$A_define_up[$i]] <> $$A_define[$i])
{
$$A_define[$i] = $cur[$A_define_up[$i]];
}
$A_rs[$ lower][$i] = $$A_define[$i]; //数字访问を使用
$A_rs[$ lower][$A_define[$i]] = $$A_define[$i]; //用小访问
$A_rs[$ lower][$A_define_up[$i]] = $$A_define[$i]; //用大写访问
}
}elseif(trim($A_define) <> "")
{
if ($cur[$A_define_up] <> $$A_define)
{
$$A_define = $cur[$A_define_up];
}
$A_rs[$ lower][0] = $$A_define; //数字访问を使用
$ a_rs [$ lower] [$ a_define] = $$ a_define;
$ a_rs [$ lower] [$ a_define_up] = $$ a_define;
それ以外
壊す;
それ以外
$ CNT ++ // $ cnt & lt; $ i_start の場合、 $ cNT ++
}
//終わり
//ハンドルを解放し、クエリデータ(二次元配列)を返します
OCIFreestatement($this -> I_stmtID);
$A_rs を返します。
} //関数の終了
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// 関数名: db_change($C_sql,$A_bind)
// 関数: DB 変更
// パラメータ: $C_sql SQL ステートメント
// $ a_Bind でフィールドをバインドします。配列型
// 戻り値: ブール値
// 注記
//------------------------------------------------ ------------------------------------------
関数 db_change($C_sql,$A_bind="")
{
If (!$C_sql){AlertExit("Incompleteparameters!");}//パラメータを確認します
//接続検出
if($ this-&gt; i_linkid == ""){alertexit( "私たちのデータベースはビジーです、後でもう一度試してください!");}
//フォーマット検出
$this -> I_stmtID = OCIParse($this -> I_linkID,$C_sql);
If (!$this -> I_stmtID){AlertExit('SQL 形式エラー! プログラマに連絡してください');}
//バインディング
If(gettype($A_bind) == "配列")
for($i=0;$i
for($i=0;$i
}
elseif(trim($ a_bind)&lt;&gt; "")
グローバル $$A_bind;
$$A_bind = ストリップスラッシュ($$A_bind);
$ $ A_bind = strplace ("" & lt;? "," & Lt;? ", $ $ A_bind); //
OCIBindByName($this -> I_stmtID, ":$arrBind", &$$A_bind, -1);
}
// 実行して成功したか確認します
If(!OCIExecute($this -> I_stmtID,OCI_DEFAULT))
実行エラー:SQL エラー:$C_sql
";
false を返します
}
/*//影響を受ける行の数を返します
グローバル $I_changenum
$I_changenum = OCINumrows($this -> I_stmtID);*/
//ハンドルを解放して値を返す
OCIFreeStatement($this -> I_stmtID);
true を返します
}
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// 関数名: db_delete($C_sql)
// 関数: 削除
// パラメータ: C_sql SQL ステートメント
// 戻り値: ブール値
// 注: この関数は直感的に使用するためのものであり、基本的に db_change() を呼び出します
//------------------------------------------------ ------------------------------------------
関数 db_delete($C_sql)
{
戻り $this -> db_change($C_sql);
}
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// 関数名: db_insert($C_sql,A_bind)
// 関数:
を挿入
// パラメータ: C_sql SQL ステートメント
// A_bind バインド
// 戻り値: ブール値
// 注: この関数は直感的に使用するためのものであり、基本的に db_change() を呼び出します
//------------------------------------------------ ------------------------------------------
関数 db_insert($C_sql,$A_bind="")
{
戻り $this -> db_change($C_sql,$A_bind);
}
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// 関数名: db_update($C_sql,A_bind)
// 関数: 更新
// パラメータ: C_sql SQL ステートメント
// A_bind バインド
// 戻り値: ブール値
// 注: この関数は直感的に使用するためのものであり、基本的に db_change() を呼び出します
//------------------------------------------------ ------------------------------------------
関数 db_update($C_sql,$A_bind="")
{
戻り $this -> db_change($C_sql,$A_bind);
}
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// 関数名: db_commit()
// 関数: トランザクションの送信
// パラメータ: なし
// 戻り値: ブール値
// 注: なし
//------------------------------------------------ -----------------------------------------------
関数 db_commit()
{
Return (Ocicommit ($ this-& gt; i_linkid));
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// 関数名: db_rollback()
// 関数: トランザクションのロールバック
// パラメータ: なし
// 戻り値: ブール値
// 注: なし
//------------------------------------------------ -----------------------------------------------
関数 db_rollback()
{
Return (Ocirollback ($ this-& gt; I_linkid));
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
// 関数名: db_logoff()
// 機能: データベース接続を切断します
// パラメータ: なし
// 戻り値: ブール値
// 注: なし
//------------------------------------------------ -----------------------------------------------
関数 db_logoff()
{
return (OCILogoff($this->I_linkID));
}
//------------------------------------------------ ------------------------------------------
//------------------------------------------------ ------------------------------------------
}
?>
以上、Oracleを操作するためのPHPクラスのサンプルを内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。