Perl -> サンプル

テーブル追加 perlプログラム


insert.cgi
-------------------------------------------------------------
#!/usr/bin/perl

use strict;
use CGI;
use DBI;

  # use パス::ファイル名(拡張子除[大小文字区別])
  # ./module/Sql.pm ファイルに記述する。
use module::Sql; 


sub Insert
{
    # オブジェクト作成 #
  my $oSql = new Sql();

  my ($tbl) = @_;        # サブルーチンの引数を受け取る
  my ($statement,$rows); # サブルーチンのローカル変数を定義

    # oSqlクラスのInsertインスタンスを実行する。#
    #   $oCGI  : GETパラメータ用のオブジェクト  #
    #   $tbl   : テーブル名                     #
    #   \@rows : @row 配列のリファランス        #
  $oSql->Insert($oCGI,$tbl,\@rows);             #

    # oSqlクラス変数の STATEMENT をローカル変数に代入する。 #
  $statement = $oSql->{'STATEMENT'};

    # oSqlクラス変数の VALUES(配列のリファランス)を #
    # ローカル変数に代入する。                      #
  $rows = @$oSql->{'VALUES'};

    # SQLコミット実行インスタンスを実行する。
  $oSql->Commit($statement,$rows);

}

&Insert('user');
exit(0);

-------------------------------------------------------------



Sql.pm
-------------------------------------------------------------
#!/usr/bin/perl

# パッケージ名はファイル名(拡張子除)と同じ名前にする。#
package Sql;

use strict;
use DB;

# 設定ファイルを読み込む #
require './module/DBEnv.conf';

# クラス変数 #
sub new
{
  my $pkg = shift;
  my ($STATEMENT,$VALUES);
  
  undef($STATEMENT)
  undef(@VALUES)

  my $obj = bless {
    'STATEMENT'  => $STATEMENT,
    'VALUES'     => $VALUES,
    'TABLE'      => undef,
    'DB'         => "$DBEnv::DB",
    'DBUSER'     => "$DBEnv::DBUSER",
    'DBPASS'     => "$DBEnv::DBPASS"
  },$pkg;
  
  return $obj;
}


# Insert サブルーチン     #
#   Insert処理を実行する  #
sub Insert
{
  my $this = shift;
  my ($oCGI,$tbl,$rows) = @_;
  my ($statement);

  $statement  = "insert into $tbl ";
  $statement .= "values(?,?,to_date(?,'YY-MM-DD HH24:MI:SS'),'0')";

  # SQL文をクラス変数にセットする。
  $this->{'STATEMENT'} = $statement;

  # テーブルに追加する値をクラス変数にセットする。
  # 値は配列形式に格納するがここではリファランスをセットする。
  $this->{'VALUES'}    = $this->SetValues($oCGI);
}


# SetValues サブルーチン                        #
#   SQL文の値部分をGETパラメータから編集する。  #
sub SetValues
{
  my $this = shift;
  my ($oCGI) = @_;
  my (@values);

  # GET パラメータにセットされた値を 配列に格納する。 #
  if (defined($oCGI->param('userid'))   &&
      defined($oCGI->param('username')) &&
      defined($oCGI->param('ymd')) ){
        push(@values,$oCGI->param('userid'));
        push(@values,$oCGI->param('username'));
        push(@values,$oCGI->param('ymd'));
  }

  # 代入した値(配列)のリファランスを返す #
  return \@values;
}


sub Commit {
  my $this = shift;
  my ($statement,$rows) = @_;
  my $dbh = $this->ConnDB;

  $sth = $dbh->prepare($statement);
  $rtn = $sth->execute(@$rows) or die return $sth->errstr;
  $this->DiscDB($dbh);
  return $rtn;

}

sub ConnDB
{
  my $this = shift;
  my $dbh = DBI->connect($this{'DB'},$this->{'DBUSER'},$this->{'DBPASS'});
  return $dbh;
}


sub DiscDB
{
  my $this = shift;
  my ($dbh) = @_;
  $dbh->disconnect;
  return 0;
}

;1
-------------------------------------------------------------

      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google