눈사람

간만에 눈이 참 많이 내렸네요..
웅휘 자는 사이에 눈을 치우려고 했는데 그사이 너무 많이 쌓였더라구요.
그래서 눈사람을 만들었습니다. 훨~ 수월하던데요?
모두들 동심으로 돌아가세요.

mysql DB Class

/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +——————————————————–+
// | PHP version 4.3.x |
// +——————————————————–+
// | Copyright (c) 2003 Song Hyo-Jin |
// +——————————————————–+
// | This source file is GPL. |
// +——————————————————–+
// | Author : Song Hyo-Jin |
// | (MSN Messengerable) |
// +——————————————————–+
//
// $Id: mysql.inc, v 0.01 2004/01/15 11:40:00 crosser Exp $
//
// MySQL database control

/*
$test = new MyDB(‘access_file.ini’, [transaction bool]);
$test->query(‘sql query’);
$test->close();
$data = mysql_fetch_object($test->result);

Want query error report
$test->err_report = true;
$test->query(‘sql query’);

With transaction
$test = new MyDB(‘access_file.ini’, true);
$test->query(‘sql query’);
$test->query(‘sql query’);
$test->query(‘sql query’);
if(not good)
$test->close_error(‘error message’);
// or exit(‘error message’); auto rollback;

access_file.ini

ip = localhost
user = sql_user
pass = sql_pass
db = sql_db
*/

// MySQL Unsigned Limit
define(‘MyBIGINT’, ‘18446744073709551615’);
define(‘MyINT’, 4294967295);
define(‘MyMEDIUMINT’, 16777215);
define(‘MySMALLINT’, 65535);
define(‘MyTINYINT’, 255);

$db_set_file = array();

class MyDB
{
var $conn, $transaction, $result, $err_report, $query_count;

function MyDB($db_setting, $transaction = false)
{
$this->err_report = false;
$this->transaction = $transaction;
$this->query_count = 0;
static $db_set_file = array();

if(false === array_key_exists($db_setting, $db_set_file))
$db_set_file[$db_setting] = parse_ini_file($db_setting);
$myset = &$db_set_file[$db_setting];
$this->conn = mysql_connect($myset[‘ip’], $myset[‘user’], $myset[‘pass’]) or exit(‘mysql_connect error’);
mysql_select_db($myset[‘db’], $this->conn) or exit(‘mysql_select_db error’);
if($transaction) {
mysql_query(‘SET AUTOCOMMIT=0’, $this->conn) or exit(‘mysql_transaction_autocommit error’);
mysql_query(‘BEGIN’, $this->conn) or exit(‘mysql_transaction_begin error’);
register_shutdown_function(array(&$this, ‘close_error’));
}
return true;
}

function close()
{
if($this->transaction)
mysql_query(‘COMMIT’, $this->conn) or exit(‘mysql_transaction_commit error’);
mysql_close($this->conn) or exit(‘mysql_close error’);
$this->conn = false;
return true;
}

function close_error($message = ‘mysql_error exit’)
{
if($this->transaction)
mysql_query(‘ROLLBACK’, $this->conn) or exit(‘mysql_transaction_rollback error’);
mysql_close($this->conn) or exit(‘mysql_close_error error’);
exit($message);
return true;
}

function query($query)
{
$this->query_count ++;
$this->result = mysql_query($query, $this->conn) or $this->close_error($this->err_report?’query < '.$query.' > error (count : ‘.$this->query_count.’ ) : ‘.mysql_error($this->conn):’query error (count : ‘.$this->query_count.’ )’);
return true;
}
}

?>

사용법

연결
$test = new MyDB(‘access_file.ini’);

트랜잭션용 연결
$test = new MyDB(‘access_file.ini’, true);

쿼리
$test->query(‘sql query’);

종료 (트랜잭션시 자동 COMMIT)
$test->close();

받아온값
$data = mysql_fetch_object($test->result);

오류출력 원할시
$test->err_report = true;
$test->query(‘error query’);

오류있을시에 종료 (트랜잭션시 자동 ROLLBACK)
$test->close_error(‘error message’);

exit() 만 해도 무조건 ROLLBACK (아마 $test->close() 안하고 종료되도 ROLLBACK)

mysql_insert_id 등의 함수 사용시에 $test->conn 링크 사용.
$idx = mysql_insert_id($test->conn);

서산대사의 답설야중

踏雪野中去하야
不須胡亂行이라
今日我行跡은
遂作後人程이라.

답설 야중거하야
불수 호란행이라
금일 아행적은
수작 후인정이라.

눈 내린 벌판을 밟아갈 때에는
모름지기 그 발걸음을 어지러히 하지 말라
오늘 걸어 가는 나의 발자국이
반듯이 뒷 사람의 이정표가 될 것이니라.

서산대사 書

바쁘네요.

아.. 프로그램 작업하다보면 아주 기초적인 것에 막혀서 헤맬때가 있습니다.
나중에 원인을 찾고나면 상당히 허탈해지죠.
지금도 그런 경우… ^^;;;;
원인을 찾지 못해 몇일동안 미뤄놨던 것을 다시 잡았는데 3시간의 고민, 서핑, 삽질
끝에 원인 발견. 원인은 아주 기초적인 것을 무시(?)해서 생긴 거였습니다.
아………. 머리 아파~~~
오늘은 이만 퇴근하고 낼 해야겠네요.

인간바이러스였슴다.

저 어제 인간바이러스 되어더랬습니다.

아시는분이 웅휘를 봐주기로해서 두루두루 불편한 곳 좀 고쳐볼라고

병원을 찾았는데, 한곳은 검사하려고 하는데 기계가 작동이 안돼 거의 1시간을 기다렸자만

결국 다음에 다시 가기로 했고,

다른한곳은 진료 끝나고 나와서 진료비 내려고 하는 순간 병원 컴터가 몽땅 다운되고,

한곳은 예전에 진료를 잘 하시던 선생님이 생각나서 겨우겨우 점심시간 걸려서 마감됐다는

걸 사정해서 기둘렸더만 병원과 환자데이터는 그대로인데, 예전 그 의사선생님만 어디로

가고 없더이다. 흑흑…