//****************************************************************************
//**ファイル名 :_func_sql.php
//**タイトル :DB接続、操作関連関数の置き場
//**作成者 :水沢
//**作成日 :'04.08.07
//**内容 :DBに直接アクセスする関数はすべてここに置く
//**
//**更新履歴******************************************************************
// 変更日 │変更者 │変更箇所 │変更理由と変更内容
//--------------┼----------┼------------------┼----------------------------
// '04.09.27 │水沢 │Oracle用処理追加 │新規開発のため
// '04.10.11 │立川 │OCI追加(OCI,POCI) │Oracleの接続方法を
//****************************************************************************
global $db;
//DBの種類(定義値:[PostgresSQL/MySQL/Oracle])
Define("c_DB_Kind", "MySQL");
//session_cache_expire(600);
/*== 各DB毎に変更する定数値 ================================================*/
//[ MySQL ]
Define("c_hostname", "mysql06.lolipop.jp" );
Define("c_dbname", "LA04088491" ); //DB名
Define("c_user", "LA04088491" ); //ユーザー
Define("c_pass", "orajiro" ); //パスワード
//-----------------------------------------------------------------------------*/
//[ Oracle ]
/*
Define("c_hostname", "EMMN" );
Define("c_dbname", "EMMN" ); //DB名
Define("c_user", "MNDBUSER" ); //ユーザー
Define("c_pass", "oracle" ); //パスワード
*/
/*===========================================================================*/
//Define( "c_disp_enc", "SJIS" );
//Define( "c_Encode", "SJIS" );
$db = DB_Connect();
/*============================================================================
関数名 :DB_Connect
引数 :なし
復帰値 :なし
概要 :DBへの接続
=============================================================================*/
function DB_Connect()
{
//echo "【in:DB_Connect(なし)】
";
switch ( c_DB_Kind )
{
case "PostgresSQL":
$db = pg_connect( "host=" . c_hostname . " dbname=" . c_dbname . " user=" . c_user . " password=" . c_pass ) or die("データベース接続エラー");
break;
case "MySQL":
$db = mysql_connect( c_hostname, c_user, c_pass ) or die("データベース接続エラー");
mysql_select_db( c_dbname, $db );
break;
case "OCI":
$db = OCILogon( c_user, c_pass, c_dbname ) or die("データベース接続エラー");
break;
case "Oracle":
$db = Ora_Logon( c_user . "@" . c_hostname , c_pass );
break;
case "POCI":
require_once("DB.php");
$db =& DB::connect( 'oci8://mndbuser:oracle@emmn' );
$db->setOption( 'optimize', 'portability' );
break;
default:
break;
}
//echo "【out[$db]:DB_Connect( なし )】
";
return $db;
}
/*============================================================================
関数名 :DB_Close
引数 :なし
復帰値 :なし
概要 :DBからの切断
=============================================================================*/
function DB_Close( $db )
{
switch ( c_DB_Kind )
{
case "PostgresSQL":
pg_close($db);
break;
case "MySQL":
//必要な終了作業なし。
//(mysql_pconnectで接続しているので、スクリプト終了時に自動的にクローズする。)
break;
case "OCI":
OCILogoff($db);
break;
case "Oracle":
Ora_Logoff( $db );
break;
case "POCI":
$db->disconnect();
break;
default:
break;
}
return;
}
/*============================================================================
関数名 :DB_Query
引数 :$strSQL[実行するSQL文]
復帰値 :$result[実行結果]
概要 :SQL文実行
=============================================================================*/
function DB_Query( $db, $strSQL, $blnBind = null )
{
//$strSQL = strtoupper($strSQL);
static $strLastSQL;
//echo "【in:DB_Query( $db, $strSQL)】
";
switch ( c_DB_Kind )
{
case "PostgresSQL":
$result = pg_query( $db, $strSQL );
break;
case "MySQL":
$result = mysql_query ( $strSQL, $db );
break;
case "OCI":
if ( $strSQL )
{
If ( null == $blnBind )
{
//標準モード
$result = OCIParse( $db, $strSQL );
$oeResult = @OCIExecute( $result, OCI_DEFAULT );
}
Else
{
//標準モード
$result = OCIParse( $db, $strSQL );
$oeResult = true;
}
}
else
{
//直前SQL吐き出しモード
return $strLastSQL;
}
break;
case "Oracle":
$result = Ora_Open($db);
var_dump($strSQL);
$oeResult = Ora_Parse($result, $strSQL);
var_dump($result);
var_dump($oeResult);
$oeResult = Ora_Exec($result);
var_dump($oeResult);
break;
case "POCI":
$result = $db->query($strSQL);
if( DB::isError($result))
{
$oeResult = false;
}
break;
default:
break;
}
//echo "【out[$result]:DB_Query( $db, $strSQL)】
";
if( is_null($result) || $result === false || $oeResult === false )
{
//クエリエラー
$strLastSQL = null;
if( c_dbg_mode == 1 )
{
?>
DBクエリエラー | |