맛집 여행 캠핑 일상 생활

MySQL 기본 함수 만들기 본문

LAMP

MySQL 기본 함수 만들기

영은파더♥ 2016. 1. 28. 18:11

PHP 에서 사용할 mysql 기본적인 함수이다.


<?php


$DB_ADDR = "127.0.0.1";

$DB_NAME = "계정명";

$DB_PASS = "비밀번호";

$db_conn = "";


function DBOpen() {

global $db_conn;

global $DB_ADDR;


if(!$db_conn) {

$connect = mysql_connect ($DB_ADDR, $DB_NAME, $DB_PASS);

if(!$connect) {

echo "Could not connect: " . mysql_error();

exit;

}

if(!mysql_select_db($DB_NAME)) {

echo "Unable to select db: " . mysql_error();

exit;

}


$db_conn = $connect;

}

return $db_conn;

}


function DBQuery($sql) {

$connect = DBOpen();

$result = mysql_query($sql, $connect);

DBClose($connect);


return $result;

}


function DBQueryRow($sql) {

$connect = DBOpen();

$result = mysql_query($sql, $connect);

if($result) {

$row = mysql_fetch_row($result);

mysql_free_result($result);

}

else {

$row = "";

}

DBClose($connect);


return $row;

}


function DBQueryRowName($sql) {

$connect = DBOpen();

$result = mysql_query($sql, $connect);

if($result) {

$row = mysql_fetch_array($result);

mysql_free_result($result);

}

else {

$row = "";

}

DBClose($connect);


return $row;

}


function DBQueryArray($sql) {

$connect = DBOpen();

$result = mysql_query($sql, $connect);

$table_result=array();

if($result) {

$r=0;

while($row = mysql_fetch_assoc($result)){

$arr_row=array();

$c=0;

while ($c < mysql_num_fields($result)) {

$col = mysql_fetch_field($result, $c);

$arr_row[$col -> name] = $row[$col -> name];

$c++;

}

$table_result[$r] = $arr_row;

$r++;

}


mysql_free_result($result);

}

DBClose($connect);


return $table_result;

}


function DBQueryObject($sql) {

$connect = DBOpen();

$result = mysql_query($sql, $connect);

if($result) {

$row = mysql_fetch_object($result);

mysql_free_result($result);

}

else {

$row = "";

}

DBClose($connect);


return $row;

}


function DBClose($connect) {

//mysql_close($connect);

}


?>


open 시에 전역변수를 체크해서 이미 열린 세션이 있다면 다시 open할 필요가 없다.

너무 잦은 open close는 서버의 부하를 줄 뿐만 아니라 엄청난 connection 이 발생할 것이다.

그리고 close 는 위에 소스를 보면 알겠지만 주석처리를 해놓았다. 이유는 php에서 알아서 close 해주니까 일단 한번 open한 뒤에는 sql 쿼리를 한번이 되었든 여러번이 되었든지 수행할 만큼 한 다음에 나중에 자동으로 close가 되도록 한다는 의도이다.


최대한 커넥션을 줄여서 부하를 줄여보자~~


'LAMP' 카테고리의 다른 글

MySQL 런타임 상태 보기  (0) 2016.02.02
지정한 계정만 su 명령어 허용하기  (0) 2016.01.29
MySQL 테이블락 설정 및 해제  (2) 2016.01.28
ssh 암호 입력 없이 rsync 하는 방법  (0) 2016.01.28
아파치 유저 권한 모듈  (0) 2016.01.28
Trackback : | Comments :