head	1.9;
access;
symbols;
locks
	root:1.9; strict;
comment	@# @;


1.9
date	2010.03.22.09.47.03;	author root;	state Exp;
branches;
next	1.8;

1.8
date	2010.03.22.09.46.10;	author root;	state Exp;
branches;
next	1.7;

1.7
date	2010.03.22.09.37.15;	author root;	state Exp;
branches;
next	1.6;

1.6
date	2010.03.22.09.30.25;	author root;	state Exp;
branches;
next	1.5;

1.5
date	2010.03.22.09.29.59;	author root;	state Exp;
branches;
next	1.4;

1.4
date	2010.01.11.04.52.16;	author root;	state Exp;
branches;
next	1.3;

1.3
date	2010.01.11.04.51.34;	author root;	state Exp;
branches;
next	1.2;

1.2
date	2010.01.11.04.50.36;	author root;	state Exp;
branches;
next	1.1;

1.1
date	2009.11.24.02.03.49;	author root;	state Exp;
branches;
next	;


desc
@/opt/nforge/var/wiki/easylogiclib/data/text/php_2edb_2eDBClient
@


1.9
log
@124.111.236.22;;cyberuls easylogic ;;
@
text
@= Database 기본 실행 =

== db 연결 ==
{{{#!vim php
<?php 
$db = db_('mssql', 'test', true);
or 
$db = DBClient::createConnector('mssql', 'test', true); 
?>
}}}

db_ 는 [http://www.easylogic.co.kr/doc/php-db/DBClient.html#createConnector DBClient::createConnector] 의 편하게 사용해주는 함수이다.

== db 연결 확인 ==
{{{#!vim php 
<?php if ($db->isConnected()) { echo "연결 되었음"; }  ?>
}}}

== insert, delete, update 실행 ==
{{{#!vim php 
<?php 

// run sql string 
$sql = "insesrt into table values ('3', '2', '1')"; 
if ($db->query($sql)) { 
 echo "성공";
} else { 
 echo "실패";
} 

// run template
$sql = $db->sql('template.sql.insert', array(....));
if ($db->query($sql)) { 
 echo "성공";
} else { 
 echo "실패";
} 
?>
}}}

== select 실행 == 
{{{#!vim php 
<?php 

// sql 구문 실행 
$sql = "select * from db_root"; 
$data = $db->getData($sql);

while($data->next()) { 
.....
}

// 템플릿 구문 실행 
$data = $db->getData("template.sql.select", array(.....));

while($data->next()) { 
.....
}

?>
}}}

== 쿼리 실행 메소드 == 
{{{#!vim php
<?php
// sql 직접 실행 
$db->query($sql);
$db->getData($query, $isOne =false);
$db->getPageData($query, $page, $count);
$db->getOne($query);
$db->getPageCountQuery($sql, $limitPage, $limitBlock);

// template 화 된 sql 실행 
$db->sql($id, $param);
$db->sqlData($id, $param);
$db->sqlPage($id, $param);
$db->sqlOne($id, $param);
$db->sqlPageCount($id, $param);

// template 화 된 sql 체크 후 있으면 실행 , 없으면 sql 바로 실행
$db->data($id, $param);
$db->page($id, $param);
$db->one($id, $param);
$db->pageCount($id, $param);


?>
}}}

== 영향을 받은 행수 ==
{{{#!vim php 
<?php  echo $db->affectedRows(); ?>
}}}

=== 에러 출력 ===
{{{#!vim php 
<?php  echo $db->error(); ?>}}}

=== db문자열 escape 하기 ===
{{{#!vim php 
<?php  echo $db->escape($str); ?>}}}

=== 트랜잭션 ===
{{{#!vim php 
<?php  
$db->begin();
{ .... }
$db->commit();
or 
$db->rollback();
?>}}}

=== select 실행, DBData 객체 얻어오기 ===
{{{#!vim php 
<?php  
$sql = "select * from table ";
$data = $db->getData($sql);
echo $data;
?>}}}

=== record 이동 ===
{{{#!vim php 
<?php  
$sql = "select * from table";
$db->query($sql);
$db->seek(1); // record 1개 전진 
?>}}}

=== prepare 사용 insert, update, delete 실행 ===
{{{#!vim php 
<?php  
$db->prepare($sql);
$db->bind($name, $type, $output, $length, &$value); 
$db->execute();
?>}}}

=== prepare 사용 select 실행 DBData 객체 얻어오기 ===
{{{#!vim php 
<?php  
$db->prepare($sql);
$db->bind( $name, $type, $output, $length, &$value );
$db->execute();

$data = $db->getBindData();
?>}}}

=== 프로시저 실행 ===
{{{#!vim php 
<?php  
$db->spName('Proc_Name');
$db->spBind($name, $type, $output, $length, &$value);
$db->spExecute();
?>}}}

=== 프로시저 실행 DBData객체 얻어오기 ===
{{{#!vim php 
<?php  
$db->spName('Proc_Name');
$db->spBind($name, $type, $output, $length, &$value);
$db->spExecute();

$data = $db->getBindData();
?>
}}}

== insert, delete, update 바인딩 자동 생성 (미구현) ==
{{{#!vim php 
<?php  
$db->spName("table_name", "insert");
$db->spBind($name, $type, $output, $length, &$value);
$db->spExecute();

// insert into table_name values (?, ?, ?, ?); //  자동 바인딩 생성 

$db->spName("table_name", "delete");
$db->spBind($name, $type, $output, $length, &$value);
$db->spBind($name2, $type, $output, $length, &$value, array("op" => "or"));

$db->spExecute();

// delete from table_name where name = ? or name2 = ? //  자동 바인딩 생성 


$db->spName("table_name", "update");
$db->spBind($name, $type, $output, $length, &$value, array("update" => true));
$db->spBind($name2, $type, $output, $length, &$value);
$db->spBind($name3, $type, $output, $length, &$value, array("op" => "or"));
$db->spExecute();

// update table_name set name = ? where name2 = ? or name3 = ? //  자동 바인딩 생성 

?> 
}}}

=== 자동 바인딩 구문 생성 (미구현) === 

 * 옵션에 해당하는 구분을 prepare 가능한 문자열로 변환시켜준다. DB마다 다른 형태로 구현된다. 
 * mssql 2000은  [[sp_executesql]] 프로시저 이용해서 구현한다. 
 * mysql 에서는 따로 구현 할 수 있는 방법이 없기 때문에 자체적으로 구현한다. 
  * @@변수 형태의 변수를 사용해서 바인딩 한다. mssql과 비슷한 방식(?)
 * mysql_i 에서는 prepare 구문을 이용한 바인딩을 한다.
 * 형식은 [[binding 방법 통일]] 참조

=== 메타데이타 얻어오기 === 

{{{#!vim php 
<?php  
// database 리스트 
$db->getMetaData("database"); 

// table 리스트 
$db->getMetaData("table"); 

// proc 리스트 
$db->getMetaData("proc"); 

// view 리스트 
$db->getMetaData("view"); 

// function 리스트 
$db->getMetaData("function"); 

// 인덱스 리스트 구하기 
$db->getMetaData("index", "test_table");

// column 리스트 
$db->getMetaData("column", "test_table"); 

// param 리스트 
$db->getMetaData("param", "test_proc"); 

// job 리스트 (미구현) 
$db->getMetaData("job"); 
?>}}}



@


1.8
log
@124.111.236.22;;cyberuls easylogic ;;
@
text
@d23 1
a23 1
// sql 구문 실행 
d31 1
a31 1
// 템플릿 구문 실행 
@


1.7
log
@124.111.236.22;;cyberuls easylogic ;;
@
text
@d63 27
@


1.6
log
@124.111.236.22;;cyberuls easylogic ;;
@
text
@d22 2
d30 30
d208 3
@


1.5
log
@124.111.236.22;;cyberuls easylogic ;;
@
text
@d107 1
a107 1
== insert, delete, update 바인딩 자동 생성 (미구현)==
@


1.4
log
@124.111.236.22;;cyberuls easylogic ;;
@
text
@d138 6
a143 6
* 옵션에 해당하는 구분을 prepare 가능한 문자열로 변환시켜준다. DB마다 다른 형태로 구현된다. 
* mssql 2000은  [[sp_executesql]] 프로시저 이용해서 구현한다. 
* mysql 에서는 따로 구현 할 수 있는 방법이 없기 때문에 자체적으로 구현한다. 
** @@변수 형태의 변수를 사용해서 바인딩 한다. mssql과 비슷한 방식(?)
* mysql_i 에서는 prepare 구문을 이용한 바인딩을 한다.
* 형식은 [[binding 방법 통일]] 참조
@


1.3
log
@124.111.236.22;;cyberuls easylogic ;;
@
text
@d104 2
a105 1
?>}}}
d107 1
a107 1
=== insert, delete, update 바인딩 자동 생성 (미구현)===
d133 2
a134 1
</php>
@


1.2
log
@124.111.236.22;;cyberuls easylogic ;;
@
text
@d38 1
a38 1
<?php  echo $db->error(); </php>
d42 1
a42 1
<?php  echo $db->escape($str); </php>
d52 1
a52 1
</php>
d60 1
a60 1
</php>
d68 1
a68 1
</php>
d76 1
a76 1
</php>
d86 1
a86 1
</php>
d94 1
a94 1
</php>
d104 1
a104 1
</php>
@


1.1
log
@118.219.84.10;;cyberuls easylogic ;;
@
text
@d1 1
a1 1
== Database 기본 실행 == 
d3 3
a5 6
=== Document ===

[http://www.easylogic.co.kr/doc/php-db/DBClient.html php.db.DBClient]

=== db 연결 ===
<php> 
d9 2
a10 1
</php>
d14 8
a21 5
=== db 연결 확인 ===
<php>if ($db->isConnected()) { echo "연결 되었음"; }  </php>

=== insert, delete, update 실행 ===
<php>
d28 2
a29 1
</php>
d31 4
a34 2
=== 영향을 받은 행수 ===
<php> echo $db->affectedRows(); </php>
d37 2
a38 1
<php> echo $db->error(); </php>
d41 2
a42 1
<php> echo $db->escape($str); </php>
d45 2
a46 1
<php>
d55 2
a56 1
<php>
d63 2
a64 1
<php>
d71 2
a72 1
<php>
d79 2
a80 1
<php>
d89 2
a90 1
<php>
d97 2
a98 1
<php>
d107 2
a108 1
<php>
d145 2
a146 1
<php>
d173 1
a173 1
</php>
@
