ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
PHP 用 リモート db クラス利用方法
日時: 2007/09/02 16:46
名前: lightbox



  ◎重要
require_once( "http://homepage2.nifty.com/lightbox/gen/db.php" );

のように、URL 指定する為には PHP5 では必ず allow_url_include を On にする必要があります
allow_url_fopen も On である必要がありますが、デフォルトで On になっています。

※ php4 に、allow_url_include はありません
  conf.php
<?

$conf_client_charset = "shift_jis";
$conf_common_path1 = "http://homepage2.nifty.com/lightbox/gensjis/";
$conf_common_path2 = "http://homepage2.nifty.com/lightbox/gen/";

// 1:MySQL, 2:SQLServer, 3:PostgreSQL
// 4:MDB(COM), 5:Oracle(COM/ADO), 6:Oracle(COM/OO4O)
$conf_db_type = 1;

$conf_db_host	= "localhost";
$conf_db_db	= "lightbox";
$conf_db_user	= "root"; 
$conf_db_pass	= ""; 

?>
<?
# **********************************************************
# 外部ファイル
# **********************************************************
require_once( "conf.php" );
require_once( "{$conf_common_path1}common.php" );
require_once( "{$conf_common_path2}db.php" );

# **********************************************************
# 接続
# **********************************************************
$SQL = new DB( "localhost", "lightbox", "root", ""  );

# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();

# **********************************************************
# デバッグ
# **********************************************************
DispData( $_POST['debug'] == 'yes', TRUE );
?>
  コンストラクタの仕様
$SQL = new DB( $Serve, $DbName, $User, $Password );

全て省略した場合は、conf.php の値を使用する

複数行の処理をしながら、他の処理をする時は新しいオブジェクトを作成して下さい
  QueryEx メソッドの仕様
$Column = $SQL->QueryEx( $Query );

$Query に、select 文を指定して、データを読み出して $Column に連想配列としてセットする。
$Column は、0 から始まる数値添字と、列名の二種類が格納されている。
もし、対象データが無い場合は、$Column は FALSE を返す
結果の行が複数ある場合は、引数を省略して呼び出す事によって次のデータが得られる。
$Column = $SQL->QueryEx( $Query . $Cond );

$rowcnt = 0;
while ( $Column ) {

	$rowcnt++;
	EditQueryData( $Column );
	if ( $rowcnt >= $rowmax ) {
		$GLOBALS['Message'] = "表示件数が $rowmax 件に制限されました";
		break;
	}

	$Column = $SQL->QueryEx( );

}
  Execute メソッドの仕様
$ret = $SQL->Execute( $Query );

$Query に、行を返さない SQL 文を指定して実行します。
1:MySQL, 2:SQLServer, 3:PostgreSQL の場合は、失敗すると FALSE を返す。
4:MDB(COM), 5:Oracle(COM/ADO), 6:Oracle(COM/OO4O) では常に TRUE を返す。
http://homepage2.nifty.com/lightbox/gen/db.php http://homepage2.nifty.com/lightbox/gensjis/common.php http://homepage2.nifty.com/lightbox/geneuc/common.php
メンテナンス

主キーから行データの取得 ( No.1 )
日時: 2007/09/01 19:30
名前: lightbox


日時: 2007/09/01 19:30
名前: lightbox
<?
# **********************************************************
# 外部ファイル
# **********************************************************
require_once( "conf.php" );
require_once( "{$conf_common_path1}common.php" );
require_once( "{$conf_common_path2}db.php" );

# **********************************************************
# 接続
# **********************************************************
$SQL = new DB( "localhost", "lightbox", "root", ""  );

$Query = "select * from 商品マスタ where 商品コード = '0001'";
$Column = $SQL->QueryEx( $Query );
if ( $Column ) {
	print "<PRE>";
	print_r( $Column );
	print "</PRE>";
}
else {
	print "該当データは存在しません<br>";
}

$Query = "select * from 商品マスタ where 商品コード = '9999'";
$Column = $SQL->QueryEx( $Query );
if ( $Column ) {
	print "<PRE>";
	print_r( $Column );
	print "</PRE>";
}
else {
	print "該当データは存在しません<br>";
}

# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();

# **********************************************************
# デバッグ
# **********************************************************
DispData( $_POST['debug'] == 'yes', TRUE );
?>
↓実行結果
Array
(
    [0] => 0001
    [商品コード] => 0001
    [1] => スポーツ用品−−−−−−−−−−−−−−−0001
    [商品名] => スポーツ用品−−−−−−−−−−−−−−−0001
    [2] => 8570
    [在庫評価単価] => 8570
    [3] => 8820
    [販売単価] => 8820
    [4] => G20
    [商品分類] => G20
    [5] => 1
    [商品区分] => 1
    [6] => 2005-05-27 00:00:00
    [作成日] => 2005-05-27 00:00:00
    [7] => 2005-08-23 00:00:00
    [更新日] => 2005-08-23 00:00:00
)
該当データは存在しません
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
一覧データの取得 ( No.2 )
日時: 2007/09/01 19:46
名前: lightbox
<?
# **********************************************************
# 外部ファイル
# **********************************************************
require_once( "conf.php" );
require_once( "{$conf_common_path1}common.php" );
require_once( "{$conf_common_path2}db.php" );

# **********************************************************
# 接続
# **********************************************************
$SQL = new DB( "localhost", "lightbox", "root", ""  );


$Query = "select * from 商品マスタ order by 商品コード";
$Column = $SQL->QueryEx( $Query );

while( $Column ) {

	$Line = "";
	for( $i = 0; $i < $SQL->nField; $i++ ) {
		if ( $Line != "" ) {
			$Line .= ",";
		}
		$Line .= $Column[$i];
	}
	print $Line . "<br>";

	$Column = $SQL->QueryEx( );
}

# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();

# **********************************************************
# デバッグ
# **********************************************************
DispData( $_POST['debug'] == 'yes', TRUE );
?>
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
Oracle ADO 接続 ( No.3 )
日時: 2007/09/13 21:18
名前: lightbox
<?
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
# **********************************************************
# 外部ファイル
# **********************************************************
$conf_client_charset = "shift_jis";
$conf_db_type = 5;
require_once( "http://homepage2.nifty.com/lightbox/gen/db.php" );

# **********************************************************
# 接続
# **********************************************************
$SQL = new DB( "DSN", "" , "lightbox", "lightbox"  );

$Query = "select * from 社員マスタ";

$Column = $SQL->QueryEx( $Query );

$handle = fopen("ora.csv", 'w');
while( $Column ) {

	$Line = "";
	for( $i = 0; $i < $SQL->nField; $i++ ) {
		if ( $Line != "" ) {
			$Line .= ",";
		}
		$Line .= $Column[$i];
	}
	fwrite($handle, $Line . "\n" );
	

	$Column = $SQL->QueryEx( );
}
fclose($handle);

# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();

?>
OK
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
Oracle 10g 以降 OO4O 接続 ( No.4 )
日時: 2007/09/13 21:18
名前: lightbox
<?
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
# **********************************************************
# 外部ファイル
# **********************************************************
$conf_client_charset = "shift_jis";
$conf_db_type = 6;
require_once( "http://homepage2.nifty.com/lightbox/gen/db.php" );

# **********************************************************
# 接続
# **********************************************************
$SQL = new DB( "ped0-026/ORCL", "" , "lightbox", 'lightbox' );

$Query = "select * from 社員マスタ";

$Column = $SQL->QueryEx( $Query );

$handle = fopen("ora.csv", 'w');
while( $Column ) {

	$Line = "";
	for( $i = 0; $i < $SQL->nField; $i++ ) {
		if ( $Line != "" ) {
			$Line .= ",";
		}
		$Line .= $Column[$i];
	}
	fwrite($handle, $Line . "\n" );
	

	$Column = $SQL->QueryEx( );
}
fclose($handle);

# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();

?>
OK
このアーティクルの参照用URLをクリップボードにコピー メンテナンス