ホームページ  >  記事  >  php教程  >  Oracle の PHP クラスの操作

Oracle の PHP クラスの操作

WBOY
WBOYオリジナル
2016-06-13 12:42:17858ブラウズ

//[警告]: 許可なく改変しないでください
//-------------------------- - ------------------------------------------------- - ---------------
//---------------------------- ---------------------------------------------------- ---- ---------
//
// [ファイル名]: c_ora_db.inc
// [関数]: Oracle 公開関数クラス
// [著者]:タイプ、 'n _' = numeric Type、 'l _' = boolean type、 'a _' = array type
// ----------------------------------------------------------- -------------------------------------------------- -- ------------------
//---------------------- -------- -------------------------------------- -------- ------------
// ※db_logon() 开启数据库连接
// ※db_query() 通用select
// ※db_change () データ库改变の汎用関数( Insert, delete, update)
// ※ db_insert () 挿入、db_change () を直接呼び出します
// ※ db_delete () 削除、db_change () を直接呼び出します
/ / ※ db_update() update、直接 db_change() を呼び出すdb_ // ※db_logoff() ※ データベース接続を切断します
//----- ----- ---------------------------------- ---------------- ------------------


クラス c_ora_db
{


//------ ------------------------------------ -------------- ------------------------------------ -
// 変数定義
//- ------------------------------------ -------------- ------------------------------------ ---
var $C_user = ""; $ c_dbパスワード
//ユーザー名
= "";//------------------------------------------------ ----------------------------------------



//------------------------------------------ --- ---------------------------------------------------
/ / 関数名: db_logon()
// 関数: データベース接続を開く
// パラメーター: なし
// 戻り値: 接続ハンドル (整数)
// 注: なし
//------------------------------------------ -----------------------------------------------
function db_logon() & gt; i_linkid == 0) {alertexit ('データベースリンクに失敗しました。DBA に連絡してください!');}
Return $ this- & gt;リンクID;
}
// -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------- ---------------------------- --------------------- ---------------------------- -----

------------------------------------------ ----------- ----------------------------------
//関数名: db_query($C_sql,$A_define ="",$I_start=-1,$I_end=-1)
// 関数: select
// パラメータ: $C_sql ステートメント
// $ A_define バインドされるフィールド。配列型 “ >// 戻り値: 2 次元配列 ($A_rs)
// 備考: 対応するフィールドの値は、数値 0,1,2.... または の値を通じてアクセスできます。対応するフィールドは、フィールド名
// をクエリすることによってもアクセスできます。たとえば、$A_rs[0][0] または $ A_RS [0] ['name'] または $ A_RS [0] ['name' ] はすべて最初のレコード名フィールドにアクセスできます
// $ i_start、$ i_end はページと組み合わせて使用​​されるパラメーターです。
//------------------------------------------ --------------------------------------
関数 db_​​query ($C_sql,$A_define="",$I_start=-1,$I_end=-1)
{
if (!$C_sql){AlertExit("パラメータが不完全です!");}//パラメータを確認します

//接続検出
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 = ("from",$A_Cur[1]) ); )

id、 "$ a_define_up [$ i]"、&$$ a_define [$ i]); 🎜> // バインドされた SQL ステートメントを実行します
if(!OCIExecute($this -> I_stmtID))
{
echo "実行エラー:< /b> ;SQL エラー:$C_sql
";

$ lower = 0; //レコードを取得 WHILE (OCIFETCHINTO ($ this -& gt; I_Stmtid, & $ cur, OCI_ASSOC))
{
// すべてのレコード
if ($ i_start == -1)
{
if (gettype($A_define) == "array") //クエリ列は配列 ine);$i ) [$ i]; $ a_rs [$ a_define [$ i] = $ a_define [$ i]; $A_define)

$ a_rs [$ lower] [0] = $ a_define] [$ a_define_up] = $$ a_define; 🎜> //指定されたレコードを取得します (ページネーションで使用されます) if ($ i_start & lt; & gt; -1)
{
if ($ cNT & GT; = $ i_start)
{
$ cNT;
if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if> if>
if> if ($I_end - $I_start <> 0)
> i=0;$i > $$A_define[$i])
{

$ a_rs [$ lower] [$ a_define [$ a_define]&lt;&gt; Break; // $I_end-$I_start=0 の場合、レコードがフェッチされ、while ループから抜け出すことを意味します。else
🎜>ハンドルを解放し、クエリ データ (2 次元配列) を返します。
OCIFreestatement($this -> I_stmtID);
return $A_rs; /機能終了
//- -------------------------------------- ---------- --------------------------------------


// -------------------------------------- ---------- --------------------------------------------
// 関数名: db_change( $C_sql,$A_bind)
// 関数: db change
// パラメーター: $C_sql SQL ステートメント
// $A_bind バインドされるフィールド。配列型
// 戻り値: ブール値
// 注: 挿入、削除、更新は共通です
//------ - ------------------------------------------------- - --------------------
function db_change($C_sql,$A_bind="")
{
if (!$C_sql){ AlertExit (「不完全なパラメーター!」);}プログラマー ');}

i&lt; count($ a_bind); $ i)
/ / backslash文字を削除してください
$$ a_bind [$ i] = str_replace( "&lt;? ","< ?",$$A_bind[$i]); //PHP タグを除外します
}
for ($i=0 ; [$i], -1); 🎜> 文字
{ < > グローバル $$A_bind;
$$A_bind = StripSlashes($$A_bind);
$$A_bind = str_replace(" OCIBindByName($this -> I_stmtID, ":$arrBind", &$$A_bind, -1); Success
if(!OCIExecute( $this -> I_stmtID,OCI_DEFAULT))
{
echo "実行エラー:SQL エラー:$C_sql
"; ; global $I_changenum; $I_changenum = OCINumrows($this -> I_stmtID);*/

//リリースハンドルを取得し、値を返します。
OCIFreeStatement($this -> I_stmtID);
return true;
//------------------------------------------ ---------------------------------------


//------------------------------------------ --- ---------------------------------------------------
/ /関数名: DB_DELETE ($ C_SQL)
// ファクトリ: delete
// パラセプション: C_SQL SQL ステートメント
// 戻り値: ブール値
// 注: この関数直感的に使用できるようにするには、基本的に db_change()
//-------------------------- を呼び出します。 ------------------------ ---------------------------- ---------------------- ----
関数 db_​​delete($C_sql)
{
return $this -> $C_sql);
}
//--------------------- ---------------------------- ------------------------ ---------------------------- ---


//-------- ---------------------------- ------------------------ ---------------------------- ----
// 関数名:db_insert($C_sql,A_bind)
// 関数:insert
// パラメータ:C_sql 文
// A_bind Bind
// 戻り値: ブール値
// 備考: この関数は基本的に db_change()
//---------------------- を呼び出して直感的に使用します。 ------------------ -------------------------------- ------------------
関数 db_​​insert($C_sql,$A_bind="")
{
return $this -> db_change($C_sql; ,$A_bind);
}
//---- -------------------------------- ------------------ -------------------------------- ----


//--- -------------------------------- ------------------ -------------------------------- -----
// 関数名: db_update($C_sql, A_bind)
// 関数: update
// パラメータ: C_sql ステートメント
// A_bind Binding
// Return value: ブール値
// 備考: この関数は直感的に使用するためだけに、基本的に db_change()
//---------------------- を呼び出します。 ------------ -------------------------------------- ------------ -----
function db_update($C_sql,$A_bind="")
{
return $this -> $A_bind);
}
/ /------------------------------------- ------------ -------------------------------------- ----



//-------------------------------- ------------------------ -------------------------------------------- --------
// 関数名: db_commit()
// 関数: トランザクション送信
// パラメータ: なし
// 戻り値: ブール値
/ / 備考: なし
//- -------------------------------------- ---------- -------------------------------------- -----
関数 db_​​commit()
{
return (OCICommit($this->I_linkID));
//------------------------------------------ ---------------------------------------


//------------------------------------------ --- ---------------------------------------------------
/ / 関数名: db_rollback()
// /--------------------------------- ---------------- ---------------------------------- -------------
function db_rollback()
{
return (OCIRollback($this->I_linkID));
}
//- ------------------------ ------------------------ ----------------------- ------------------


//-------------------------- ------------------------ -------------------------- ------------------
// 関数名前: db_logoff()
// 機能: データベース接続の切断
// パラメータ: なし
// 戻り値: ブール値
// 備考: なし
//---- ------------------------ ---------------------------- ---------------------- -------------- -------------- ------------------------------------ -------------- ------------------------

/----------------- -------------------------------- ------------------ ------------------------
}
?> ;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。