SqlManager(); // DB connection 確保 $this->DbConn(); } /*------------------------------------------------------------------------- DbConn() [説明] Postgres関数を利用したPostgresDBへの接続 [引数] なし [return] なし ---------------------------------------------------------------------------*/ function DbConn() { //DB接続 @$iConn = @pg_pconnect(DB_PG_CONN_STR); //エラー処理 if (!$iConn) { $_SESSION["SYS_MSG"] = ERR_MSG_DB_CON_ERR; include_once($_SESSION["LOGIN_URL"]); exit; } $this->iConn = $iConn; } /*------------------------------------------------------------------------- DbClose() [説明] Postgres関数を利用したPostgresDB接続の切断処理 [引数] なし [return] なし ---------------------------------------------------------------------------*/ function DbClose() { //DB切断 @$bReturn = @pg_close($this->iConn); //エラー処理 if (!$bReturn) { $_SESSION["SYS_MSG"] = ERR_MSG_DB_CON_ERR; include_once($_SESSION["LOGIN_URL"]); exit; } } /*------------------------------------------------------------------------- DbQuery() [説明] 組み立て済みSQL文の実行。 stmtを返す。 [引数] & $iStmt : 生成されたステートメントID [return] 処理失敗時はfalseを返す。 ---------------------------------------------------------------------------*/ function DbQuery(&$iStmt) { // SQL受取り $sSql = $this->sSql; // SQL実行 if(isset($_SESSION['userClass'])){ $objLoginDM = unserialize($_SESSION['userClass']); $sUserCd = $objLoginDM->sUserCd; WriteLog("user_id=".$sUserCd,"LOG_LEVEL_DEBUG"); } if(isset($_SESSION["USER_KANRI"])){ WriteLog("user_kbn=".$_SESSION["USER_KANRI"],"LOG_LEVEL_DEBUG"); } if(isset($_SERVER["REMOTE_ADDR"])){ WriteLog("IPadress=".$_SERVER["REMOTE_ADDR"],"LOG_LEVEL_DEBUG"); } WriteLog("---------DatabaseManagerPg.inc DbQuery() SQL=".$sSql,"LOG_LEVEL_DEBUG"); $iStmt = @pg_query($this->iConn, $sSql); // エラー処理 if (!$iStmt) { WriteLog("DBエラー","LOG_LEVEL_DEBUG"); $_SESSION["SYS_MSG"] = ERR_MSG_DB_ERR; if(isset($_SESSION["LOGIN_URL"])){ include_once($_SESSION["LOGIN_URL"]); } exit; return false; }else{ $this->iStmt = $iStmt; return true; } } /*------------------------------------------------------------------------- DbFetch() [説明] 結果バッファーの次の行を取得する [引数] $iStmt : ステートメントID [return] EOFならばFlaseを返す ---------------------------------------------------------------------------*/ function DbFetch($iStmt) { if ($this->iLoopCnt == $this->GetDbRows($iStmt)) { return false; }else{ return true; } } /*------------------------------------------------------------------------- DbResult() [説明] 取得された行におけるカラムの値を得る [引数] $iStmt : ステートメントID $sField : フィールド名 [return] Value ---------------------------------------------------------------------------*/ function DbResult($iStmt, $sField) { $aryData = pg_fetch_array($iStmt, $this->iLoopCnt, PGSQL_ASSOC); return $aryData[strtolower($sField)]; } /*------------------------------------------------------------------------- DbArrayList() [説明] 表示条件に応じた配列データの生成 [引数] $iViewPage : 1ページあたり表示件数 $iNowpage : 現在の表示頁数 [return] 処理失敗時はfalseを返す。 ---------------------------------------------------------------------------*/ function DbArrayList($iViewCnt, $iNowPage) { $aryData = array(); $i = 0; $this->iLoopCnt = ($iNowPage-1) * $iViewCnt; $iStmt = $this->iStmt; $iHitCnt = $this->GetDbRows($iStmt); if ($iHitCnt>0) { while ($this->DbFetch($iStmt)) { if ($i==$iViewCnt) {break;} $j = 0; while(@pg_fieldname($iStmt, $j)){ $sField = pg_fieldname($iStmt, $j); $aryData[$i][strtoupper($sField)] = $this->DbResult($iStmt, $sField); $j++; } $i++; $this->iLoopCnt++; } } return $aryData; } /*------------------------------------------------------------------------- DbFreeStmt() [説明] stmtを終了させる。 [引数] $iStmt : ステートメントID [return] 処理失敗時はfalseを返す。 ---------------------------------------------------------------------------*/ function DbFreeStmt($iStmt) { // stmtの開放 return pg_free_result($iStmt); } /*------------------------------------------------------------------------- GetDbRows() [説明] stmt内にある件数の取得 [引数] $iStmt : ステートメントID [return] レコード件数。 処理失敗時はfalseを返す。 ---------------------------------------------------------------------------*/ function GetDbRows() { $iStmt = $this->iStmt; return pg_num_rows($iStmt); } /*------------------------------------------------------------------------- WatchDbBegin() [説明] ロールバック基点設定 [引数] なし [return] 処理失敗時はfalseを返す。 ---------------------------------------------------------------------------*/ function WatchDbBegin() { return pg_exec($this->iConn, "begin"); } /*------------------------------------------------------------------------- WatchDbCommit() [説明] ロールバック宣言中のDB接続処理 [引数] なし [return] 処理失敗時はfalseを返す。 ---------------------------------------------------------------------------*/ function WatchDbCommit() { return pg_exec($this->iConn, "commit"); } /*------------------------------------------------------------------------- WatchDbRollback() [説明] ロールバック処理発動 [引数] なし [return] 処理失敗時はfalseを返す。 ---------------------------------------------------------------------------*/ function WatchDbRollback() { return pg_exec($this->iConn, "rollback"); } } ?>