NAME

TL::DB - DBI (ja)

NAME (ja)

TL::DB::JA - DBI��勉�í�����

SYNOPSIS

$TL->startCgi(
    -DB      => 'DB',
    -main        => \&main,
);

sub main {
  my $DB = $TL->getDB('DB');

  $DB->setDefaultSet('R_Trans');
  $DB->begin;

  my $sth = $DB->execute(q{SELECT a, b FROM foo WHERE a = ?}, 999);
  while (my $hash = $sth->fetchHash) {
      print $hash->{a};
  }
  $DB->commit;

  $DB->begin('W_Trans');
  $DB->execute(q{UPDATE counter SET counter = counter + 1 WHERE id = ?}, 1);
  $DB->commit;
}

DESCRIPTION

�・膓�/�����㏍�虁�ɱ����ц��������������

��������ф・膓�/�����㏍�������翫����壔��connect/disconnect���篏帥�����

絎�茵���壔����ŝ�勐�☎����������糸��茵�荐���祉�紫��������荐���蚊����������������違�≪�若�����
prepare/execute�����������ŝ�����fetch��壠�����������
��≦宍�����㋘�若�鴻����˨��罘���
$db->execute(q{select * from a where mode in (??)}, ['a', 'b'])

��◑��菴違�����������

$db->execute(q{select * from a where mode in (?, ?)}, 'a', 'b')

��勉�������̬В���������������

�����㋘�若�鴻����˨����勐�ゆ検�����勰�����������絎�����櫝�
$db->execute(q{select * from a limit ??}, ['a', \'SQL_INTEGER'])
��ŝ�壔����鴻����☎��絎�篋�緇���勉����í�潟�吟�壔�激�с�恰�ɱ��篋����unlock��ɱ��篋������ɱ��罎���
DB��違�˨�若�����DB��祉��������DB��潟����壔�激�с�

TL::DB��с�壔����㋘����ŝ�宴�若�激�с�潟����ñ�������⓾�㏍�若�������í�潟�鴻����������������壩叵�������������� 鐚���ゃ��DB��違�˨�若����勌賢��˨��茲���違��DB��祉��������絎�臂í���������������櫝�純����ŝ�c�⓾�������� DB��祉�������勌賢��˨�壔��茲���違��DB��潟����壔�激�с�潟��絎�臂í�с��������

��贋�亥��DB��祉�������������х��DB��祉����������ŝ�í�勐就��у��臂í����⓾�������������㏍�違�í��筝㏍� �����í�潟�吟�壔�激�с�喝��篏���с�í��DB��祉��������篏睡��������������絎���������������с�� ��贋�亥����壔����ŝ�壔����鴻��DB��������х����壔����ŝ�壔�鴻�㋘�若��DB�����������c�� 篏帥���������������������������櫝�純����ŝ�����

DB��祉�������˨�虁����違��DB��潟����壔�激�с�潟��絎�臂í�с�����茲���医��臂í�������翫���� �����㏍�祉�劫��篏���с����㏍�祉��ID���������1��ゃ�勉�潟����壔�激�с�潟����御�������������� 鐚������㏍�祉��ID���絎�臂ð�違�у�蚊����������勌��������篏睡�������〠浦絎����������鐚�

������DB��違�˨�若����勌賢��勤����違��DB��祉�������у�����DB��潟����壔�激�с�喝�����篏睡�������������翫����壔�� 絎�������DB����・膓������������潟����壔�激�с�恰�違��1��ゃ����ŝ����� �����勉��������膰勰�����荵∽����������х��DB��祉��������DB��潟����壔�激�с�潟����贋�亥���� �����勉��綏勉����帥�����������篋����絨���ャ����喝�������☗��������DB��祉������������� ��������⓾���������������櫝�純����ŝ�c�⓾��������

DB��祉�������勐��腱違��SET_XXXX(XXXX��壚算�����勖��絖����)��с�ŝ�������違�ŝ����ŝ����� DB��潟����壔�激�с�潟�勐��腱違��CNT_XXXX(XXXX��壚算�����勖��絖����)��с�ŝ�������違�ŝ����ŝ�����

��≦宍�����㋘�若�鴻����˨��荅括完

"execute" ���羝<��������SQL�����˨�壔�����絽吾�勉����㋘�若�鴻����˨����勌����˨�� ��≦宍�����㋘�若�鴻����˨�� "??" ���������莨若��篋������堺�ャ����� ��≦宍�����㋘�若�鴻����˨����勛舟�����������贋����˨�壔�������í�<�若�帥�������☁��絽吾�勉�鴻�˨�í�弱�ゃ�с�ŝ����� ��������吾�勉�ŝ����<�㋘�潟�鴻��筝������ŝ�������違�ŝ����ŝ��������������茲���違�勐�ゃ�������c�⓾�������翫����˨�壔�� ���������������絽吾�勉����㋘�若�鴻����˨�������˨�潟����х�������������勉��絮����������������

箴�: 篁ヤ����勌�������夌��箴

$DB->execute(
    q{SELECT * FROM a WHERE a IN (??) AND b = ?},
    ['AAA', 'BBB', 'CCC'], 800);
$DB->execute(
    q{SELECT * FROM a WHERE a IN (?, ?, ?) AND b = ?},
    'AAA', 'BBB', 'CCC', 800);

�����í�<�若�帥�������⓾�勰�������勖��緇���勰����勉�����絖������吾�勉�ŝ����<�㋘�潟�鴻�с����������������勖��絖������ SQL��������������〠�宴��������������������茲���違�勐�ゃ�������ゆ����˨�壔�������勐����⓾�勤��膣����絲障���� ������絎������ñ�����������������������DBI.pm��у��臂í�����������

箴�:

$DB->execute(q{SELECT * FROM a LIMIT ??}, [20, \'SQL_INTEGER']);
==> SELECT * FROM a LIMIT 20

$DB->execute(q{SELECT * FROM a LIMIT ??}, [20, 5, \'SQL_INTEGER']);
==> SELECT * FROM a LIMIT 20, 5

�����������勤��膣������眼��2荀�膣���勰��������������篋���ɾ�勉�勤��膣�������絖������吾�勉�ŝ����<�㋘�潟�鴻� ������篋���с��荀�膣���勐����������ャ�����絎���堺�ャ�����

箴�:

$DB->execute(
    q{SELECT * FROM a WHERE a IN (??) AND b = ?},
    [[100, \'SQL_INTEGER'], 'foo', \'SQL_VARCHAR'], 800);
==> SELECT * FROM a WHERE a IN (100, 'foo') AND b = '800'

METHODS

TL::DB ��<�純�����

$TL->getDB
$DB = $TL->getDB
$DB = $TL->getDB($inigroup)

TL::DB ��ŝ����吾�с�壔��������緇���� 綣���違�˨��Ini��ц┃絎���������違�˨�若��������羝<����� 綣���亥����ユ����� 'DB' ��違�˨�若�����篏睡��������������

$TL->startCgi / $TL->errorTrap ��勰�∽�医�����DB��ŝ����吾�с�壔��������緇���������翫����˩戎������������

$TL->newDB
$DB = $TL->newDB
$DB = $TL->newDB($inigroup)

��違����� TL::DB ��ŝ����吾�с�壔��篏������� 綣���違�˨��Ini��ц┃絎���������違�˨�若��������羝<����� 綣���亥����ユ����� 'DB' ��違�˨�若�����篏睡��������������

��������˨�潟����壔�激�с�潟��篏���������������翫����ŝ�í�˩戎������������ �����勖�号����� TL::DB ��ŝ����吾�с�壔��������緇���������翫�����"connect" / "disconnect" �����若�喝�冴������・膓���勐�九勝���茵����綽�荀�������������

connect

DB����・膓����������

$TL->startCgi / $TL->errorTrap ��勰�∽�医�����DB��ŝ����吾�с�壔��������緇���������翫����˨�虁�ɱ���������・膓����膊∞�������������������������勉�<�純����������若�喝�冴����⓾�壔�ŝ����ŝ�����

$TL->newDB ��т����������� TL::DB ��ŝ����吾�с�壔����̹�≪����⓾�壔�������勉�<�純����������若�喝�冴�����DB��御・膓�������綽�荀�������������

disconnect

DB�����������㏍��������

$TL->startCgi / $TL->errorTrap ��勰�∽�医�����DB��ŝ����吾�с�壔��������緇���������翫����˨�虁�ɱ���������・膓����膊∞�������������������������勉�<�純����������若�喝�冴����⓾�壔�ŝ����ŝ�����

$TL->newDB ��т����������� TL::DB ��ŝ����吾�с�壔����̹�≪����⓾�壔�������勉�<�純����������若�喝�冴�����DB��吾�勖・膓���������㏍�����綽�荀�������������

begin
$DB->begin
$DB->begin('SET_W_Trans')

���絎����������DB��祉����������с����í�潟�吟�壔�激�с�潟�����紮���������������í�潟�吟�壔�激�с�喝�� (DB��祉��������) ���ini��у��臂í�������⓾����ŝ�������違�ŝ����ŝ����� ��������������ャ�������翫����壔����������í�˨�����DB��祉��������篏帥�������������� setDefaultSet��˨����c�⓾�������í�˨�������吾�違����⓾����ŝ����翫����˨�壔����í�若����ŝ�����

CGI��勌賢��с����í�潟�吟�壔�激�с�潟�����紮�������腟�篋����������Main��∽�違�������������翫����壔����ɱ������� rollback������������

�����í�潟�吟�壔�激�с�喝��茵�筝㏍�˨����勉�<�純����������若�������翫����˨�壔�������í�若����ŝ����� 1綺⓾�̹��紮���堺�ャ�������í�潟�吟�壔�激�с�潟�壔��1��ゃ��DB��違�˨�若����˨�ゃ��1��ゃ����������ŝ�����

rollback
$DB->rollback

�憜��絎�茵�筝㏍�勉����í�潟�吟�壔�激�с�潟��������羔�������

commit
$DB->commit

�憜��絎�茵�筝㏍�勉����í�潟�吟�壔�激�с�潟��腆阪�����������

setDefaultSet
$DB->setDefaultSet('SET_W_Trans')

��������í�˨�����DB��祉����������御�������������������ц┃絎����������DB��祉�������壔��綣���亥�<�����begin() ������begin��������̬����c��execute��勰����˩戎�����������������勉�<�純������� Main��∽�� ��勐����㏍�у�若�違�����篋������喝�������⓾��������

execute
$DB->execute($sql, $param...)
$DB->execute(\'SET_W_Trans' => $sql, $param...)

SELECT/UPDATE/DELETE��ŝ�í��SQL������絎�茵���������� 膃�1綣���違��SQL���膃�2綣���遺札�����˨����㋘�若�鴻����˨����勐����違��羝<����� ������������膃�1綣���違�˨�ŝ����<�㋘�潟�鴻��DB��祉��������羝<����������˨�������� �����í�潟�吟�壔�激�с�喝����с�勐��茵�������DB��祉�����������絎�����������������櫝�純��

膃�2綣���遺札�����勐����違�с�壔����≦宍�����㋘�若�鴻����˨�����篏睡����с�������� "��≦宍�����㋘�若�鴻����˨��荅括完" ��������с��

��≪�˨����í�潟�吟�壔�激�с�潟��絎�茵���������⓾�������違�������勉����í�潟�吟�壔�激�с�潟� DB��祉��������SQL���絎�茵�������������

�����í�潟�吟�壔�激�с�潟�����紮���������⓾����������������� "lock" ��˨����� �����若����˨����㏍����壔�������⓾�������違����㏍����壔����������⓾�����DB��祉��������SQL���絎�茵�������������

�����������勐�翫����с����ŝ����翫����壔��"setDefaultSet" ��ф��絎���������� �����í�潟�吟�壔�激�с�潟��篏睡�������������� "setDefaultSet" ��˨�����荐㊤�������������⓾����ŝ����翫����壔�������í�若����ŝ�����

�����勉�<�純��������篏睡�������⓾��LOCK/UNLOCK/BEGIN/COMMIT��������c��SQL������ 絎�茵������⓾�壔�ŝ����ŝ�����絎�茵���������������������翫����壔����í�若�˨�ŝ����� 篁c��������絨������勉�<�純��������篏睡��������篋����

selectAllHash
$DB->selectAllHash($sql, $param...)
$DB->selectAllHash(\'SET_W_Trans' => $sql, $param...)

SELECT腟���������������激�ャ�勰�������吾�勉�ŝ����<�㋘�潟�鴻�ц��������

my $arrayofhash = $DB->selectAllHash($sql, $param...);
foreach my $key (@$arrayofhash){
   $TL->log(DBDATA => $arrayofhash->{$key});
}
selectAllArray
$DB->selectAllArray($sql, $param...)
$DB->selectAllArray(\'SET_W_Trans' => $sql, $param...)

SELECT腟���������������勰�������吾�勉�ŝ����<�㋘�潟�鴻�ц��������

my $arrayofarray = $DB->selectAllArray($sql, $param...);
foreach my $array (@$arrayofarray){
   $TL->log(DBDATA => $array->[0]);
}
lock
$DB->lock(set => 'SET_W_Trans', read => ['A', 'B'], write => 'C')

���絎����������DB��祉��������絲障�����LOCK TABLES���絎�茵����������set��������ャ����������翫����壔�������í�˨�� ���DB��祉����������吾�違��������CGI��勌賢��с�㏍����壔�������翫����壔�� Main��∽�� �����������������鴻�ц�ɱ��������unlock������������

��㏍����壠��茵�筝㏍�˨����勉�<�純����������若�������翫����˨�壔�������í�若����ŝ����� 1綺⓾�̹��紮���堺�ャ����㏍����壔�壔��1��ゃ��DB��違�˨�若����˨�ゃ��1��ゃ����������ŝ�����

unlock
$DB->unlock

UNLOCK TABLES ���絎�茵���������� ��㏍����壔����������c�⓾����ŝ����翫����壔����í�若����ŝ�����

setBufferSize
$DB->setBufferSize($kbytes)

�����������<�泣�ゃ�冴��KB���篏���с�祉��������������茵����鐚�茵�茯㏍�粋昭������腟���� �����勉�泣�ゃ�冴��筝���������翫�����die��������� 0 ��障����� undef �����祉�������������������狗�����茹i�ゃ�����������

symquote
$DB->symquote($sym)

���絖�������茘���ュ����������⓾�壔�í�若�����������

mysql��勐�翫����� `a b c` �����ŝ�����������篁ュ����勐�翫����� "a b c" �����ŝ�����

getType
$DB->getType;

DB��勉�帥�ゃ�����菴�������(mysql, pgsql, ...)

getDbh
$dbh = $DB->getDbh
$dbh = $DB->getDbh('SET_W_Trans')

DB��祉�����������DB�����潟����˨��菴������� 菴������������ŝ����吾�с�壔����� DBI �����ゃ����c�����dbh��с��������

�����ゃ����c�����DB�����潟����˨��篏睡�������⓾�壔����ŝ����肴����������翫����������������井����緒�������㏍����<�ゃ�ŝ�潟�亥��鐚���勖����純�壚戎�����с����障�������� ��障����������í�潟�吟�壔�激�с�潟����㏍����夌�倶����勛�∞����������㋘�若����壔�若�壔�ц�������ŝ����ŝ�����������羈���������☖戎���������綽�荀������������障�����

TL::DB::STH ��<�純�����

fetchHash
$sth->fetchHash

��������激�ャ�吾�勉�ŝ����<�㋘�潟�鴻�э��茵���������冴�����

fetchArray
$sth->fetchArray

��������吾�勉�ŝ����<�㋘�潟�鴻�э��茵���������冴�����

rows
$sth->rows

DBI������罕����

finish
$sth->finish

DBI������罕����

nameArray
$sth->nameArray

$sth->{NAME_lc} ���菴�������

nameHash
$sth->nameHash

$sth->{NAME_lc_hash} ���菴�������

Ini �����í�<�若�

DB��祉��������DB��潟����壔�激�с�

DB��違�˨�若����勉����í�<�若�帥�勉����<�����茹�絨����絖���掩�医����勉�帥�ф�������������� �����í�<�若�帥�壚��膣�羝���帥�с��DB��違�˨�若����勐��篏�荐㊤����˩戎������������ DB��祉�������壔��篋�膣�羝���帥�с�壔�ŝ����������с�������遺算�����勐��腱違��篏睡����с����� ��ゃ��������DB��潟����壔�激�с�潟��INI��違�˨�若����������˨�潟����阪�������ф��絎����������

箴�:

[DB]
namequery=1
type=mysql
defaultset=SET_R_Trans
SET_W_Trans=CNT_DBW1
SET_R_Trans=CNT_DBR1,CNT_DBR2

[CNT_DBW1]
dbname=test
user=daemon
host=192.168.0.100

[CNT_DBR1]
dbname=test
user=daemon
host=192.168.0.110

[CNT_DBR2]
dbname=test
user=daemon
host=192.168.0.111

篁ヤ����夌�劫�ャ�ŝ����í�<�若��:

namequery
namequery = 1

���������1��˨�����������絎�茵���������������������壔����ŝ�勉�潟����潟�������勛�翫���� /* foo.pl:111 [DB.R_Transaction1.DBR1] */ ��勉�������ŝ�潟�<�潟�������水�ャ�������� ��������í�˨�����0���

type
type = mysql

DB��勛┏蕁������御����������� mysql, pgsql, oracle���篏睡���櫝�純�� 綽���������勉��

defaultset
defaultset = SET_W_Trans

��������í�˨�����DB��祉��������荐㊤����������� ��������ц┃絎����������DB��祉�������壔��綣���亥�<�����begin()������begin��������̬����c��execute��勰����˩戎������������

DB絎�臂

dbname
dbname = test

DB������荐㊤�����������

host
host = localhost

DB��勉�≪����㋘�鴻��荐㊤����������� ��������í�˨�����localhost���

user
user = www

DB����・膓������������勉�⓾�若�吟�弱�����荐㊤�����������

password
password = PASS

DB����・膓������������勉����鴻�壔�若�����荐㊤����������� �����ュ櫝�純��

SEE ALSO

TL

AUTHOR INFORMATION

    Copyright 2006 YMIRLINK Inc. All Rights Reserved.

    This framework is free software; you can redistribute it and/or modify it under the same terms as Perl itself

    �����勉����㋘�若����壔�若�壔�壔����ŝ�若�純�������⓾�с�≪�с����������ŝ����� Perl �����������í�ゃ�祉�潟�鴻�� �����у�����絽������喝����眼��茵���������������堺�ャ�障�����

    Address bug reports and comments to: tl@tripletail.jp

    HP : http://tripletail.jp/