PHP MYSQL 데이터베이스 연결 및 조회

PHP를 처음 접했을 당시의 기억이 떠올라서 기록 및 초보 개발자를 위한 기록..

웹 개발뿐만이 아니라 프로그램을 개발하게 되면 데이터베이스는 항상, 반 필수적으로 사용하게 된다.

db_test.php

<?php
$host = "DB 접속 URL";
$user = "DB 접속계정 ID";
$pass = "DB 접속 PW";
$dbName = "DB 이름";

$con = mysqli_connect($host, $user, $pass);

//데이터베이스 설치 및 클라이언트 접속 캐릭터셋 설정
mysqli_query($con, "set session character_set_connection=utf8;");
mysqli_query($con, "set session character_set_results=utf8;");
mysqli_query($con, "set session character_set_client=utf8;");
mysqli_query($con, "set names utf8");

//데이터베이스 접속정보 확인
if(!$con){
	echo "Database Connection Error!!";
}else{
	echo "Database Connection Success!!";
}

echo "<br>";

$selectdb = mysqli_select_db($con, $dbName);

//데이터베이스 선택 확인
if(!$selectdb){
	echo "Database Select DB Error!!";
}else{
	echo "Database Select DB Success!!";
}

접속정보(URL, 사용자ID, 사용자PW, DB명)가 일치하다면

아래와 같은 메시지를 확인 할 수 있을 것이지만…

DB 연걸 성공 -> 선택한 데이터베이스 까지..

만약 위 정보중 하나라도 잘못된 것이 있다면

(접속 URL 이든 사용자 이름 또는 패스워드 등..)

위와 같은 에러메시지를 확인 할 수 있다.

※ 추가사항

이런 시스템 메시지의 경우 일반 사용자가 볼 필요도 없을 뿐더러, 보안상 좋지 않다는 권고를 여기저기서 워낙 자주 봤다…

PHP 의 경우 메소드(함수) 앞에 @ 를 붙임으로써 이러한 시스템 메시지를 생략 할 수 있다.

하지만 위 예제처럼 얼마 되지 않는 메소드의 경우 @ 를 하나하나 붙일 수 있지만,

사용한 메소드가 많다면 일일히 @를 붙일 수는 없다.

이 때에는

error_reporting(0);

위와 같은 방식으로 처리하게 되면… 개발자가 원하는 오류 메시지만 출력이 가능하다.

모든 오류 메시지를 보고 싶다면..

error_reporting(E_ALL);

잡다한 시스템 메시지는 없는 깔끔한 오류!! 상태..

개발할 때에는 오류 메시지를 보고 잘못 된 부분을 수정하며 개발해 나아가야겠지만,

서비스 중인 시스템이라면 시스템 메시지는 숨김처리하는 것이 좋다.

다시 본 글의 요점으로 돌아와서…

데이터베이스 연결이 잘 되지 않는 다면… 접속 정보를 다시 한번 확인해보자.

최종적으로 연결이 성공 된 이 후라면…

간단(?)하다..

쿼리를 작성한다.

$sql = "SELECT NOW() AS NOW";
$result = mysqli_query($con, $sql);
$row = mysqli_fetch_assoc($result);
echo "<br>";
echo $row["NOW"];
echo "<br>";
print_r($row);

$sql 쿼리를 작성

mysqli_query 메소드를 이용하여

연결정보($con)와 쿼리($sql)를 전달

결과값을 $result에 저장한 후

mysqli_fetch_assoc 메소드에 결과값을 전달

하여 각 컬럼명으로 $row[“NOW”] 에서 컬럼명은 NOW (쿼리상 alias 처리)

출력 결과는 위와 같다.

mysqli_fetch_assoc 했을 때 결과 값을 확인하기 위하여

print_r 메소드를 사용하여 확인…

어라? 로우가 하나인 경우에는 위 처럼 사용하면 끝이지만..

일반적인 게시판 처럼 결과 ROW 가 2개 이상이라면…?

while 문과 mysqli_fetch_assoc 를 응용하면 가능하다.

$sql2 = "SELECT NO FROM TEST_TABLE";
$result = mysqli_query($con, $sql2);
while($row = mysqli_fetch_assoc($result)){
	echo "NO : ".$row["NO"]."<br>";
}

위와 같이 while 문 안에 작성하게 되면 한 ROW 씩 읽어 들여오게 된다.

여러 ROW 에도 문제 없다.

그리고 마지막으로 아래 명령어를 추가한다.

mysqli_close($con);

처음 데이터베이스와 연결될 때 사용한 mysqli_connect 의 반환값을 가지고 있던 $con을 해제(?) 처리 하여준다.

지금은 PHP 내에서 JAVA의 garbage collect 마냥… 일정 시간 사용되지 않으면 반환처리 된다는 글을 보았고,

정말 많은 인원(짐작 불가..)이 동시 다발적으로 사용하여 connection 이 메모리에 넘쳐 흐르는 경우를 제외한다면..

큰 문제는 없을 것 같으나…

혹시나~ 라는게 있으므로…

필자는 데이터베이스 사용이 끝난 경우 connection 을 해제한다.

0 글이 마음에 드셨다면 하트 꾸욱~

2020년 근로장려금 신청 안내 및 자격요건

홈텍스 홈페이지에 들어가보면 아래와 같은 안내가 있다.

계좌이체가 아닌 현금의 경우 1~2일 지연될 수 있다는 설명이 있으나..

홈텍스 홈페이지

https://www.hometax.go.kr/

위에서도 확인 할 수 있지만… 가장 빠른 건 바로 전화 한통!!

ARS : 1544-9944 -> 1번 누르고, 본인확인(주민등록번호) 후 지급 대상인지 아닌지를 확인 할 수 있다.

근로장려금 신청 자격요건은 근로·자녀장려금은 1가구 1명만 신청할수 있으며

소득 조건은 2019년 근로·사업·종교인 소득이 있는 가구로서 부부 합산 연간 총소득이 일정 기준 미만이어야 한다.

※소득 기준

단독가구 : 4만~2,000만원 미만

홑벌이가구 : 4만 ~ 3,000만원 미만

맞벌이 가구 : 600만~3,600만원 미만

기타사항으로 가구원 모두를 기준 주택, 토지, 건물 등 재산이 2억원 미만이어야 한다.

0 글이 마음에 드셨다면 하트 꾸욱~

MSSQL 날짜형식 출력(CONVERT)

지금까지 사용해 본 데이터베이스는 아래와 같다..

Oracle, MySQL, Postgresql… 정도..?

막 튜닝을 잘하고 그런 것은 아니고…

웹개발시 인덱스는 잘 타는지… 조건이 맞는지.. 정도…

가볍게 CRUD 하는 정도이다..

(CREATE, READ, UPDATE, DELETE)

지금 다니는 회사에 와서 처음으로 MSSQL 을 사용하게 되었다.

데이터베이스에 입력된 값을 웹에 보여줄 때 문제되는 것은 보여주는 방식과,

데이터를 넘겨 전달 받은 데이터를 가공하는데에 있다.

이번 포스팅은 날짜 표시 방법이다.

데이터를 보여주거나 전달할 때 최대한 개발언어를 사용하지 않고

데이터베이스에서 조회할 때부터 원하는 형식으로 날짜를 출력하려고 할 때에는

MSSQL에 내장되어 있는 CONVERT 함수이다.

사용방법은 아래와 같다.

개인적으로 자주 사용하는 데이터 형식은 노란색으로 표기해 두었다.

0 글이 마음에 드셨다면 하트 꾸욱~

2020.06.09 저녁~

오늘의 저녁은~

두구두구~

하기전에… 요새 부쩍 날씨가 더워졌다;;

낮기온 33도…

아직 6월 초인 것을 감안하면… 무척이나 더운 날씨…

그나마 다행이라면… 사무직(?)이라… 시원한 에어컨 밑에서 일한다는 점…?

의도한 것은 아니지만… 날도 덥고.. 몸보신도 하게 된 저녁메뉴는~

바로.. 닭볶음탕~!!

메인 반찬인 닭볶음탕과 매운맛을 잡아주기 위한 계란찜!!

그리고 한국인의 밥상에 빠질 수 없는 배추김치~!

몇일전 잘 썰어놓은(이라 쓰고 가위로 자른…) 배추김치…

1년 6~7개월정도 지난 묵은지…

딱 알맞게 익은 김치보다는.. 묵은지를 좋아라 한다..

야채를 싫어하는(?) 날 위한 노야채 계란찜…

닭볶음탕이 맵지는 않았으나 빈속을 달래기에는 너무나도 좋은 계란찜~

그리고 오늘 저녁 메인 반찬인 닭볶음탕 되시겠다~

※ 알아도 되고 몰라도 되는 부가적인 정보~

김푸푸씨는 닭다리와 닭날개를 좋아하고~

나는 닭가슴살을 좋아하니~

닭을 한마리 시켜서 먹을때도 싸우지 아니하니.. 이 얼마나 좋은가?

0 글이 마음에 드셨다면 하트 꾸욱~

2020.06.09 점심~

날이 더운관계로.. 멀리 나가지 않고…

회사 근처에 있는 행복한식당 점심~

배추김치, 소야(소세지야채볶음), 숙주나물, 김, 동그랑땡(?)

맛있어.. 더.. 더!!

메인 반찬인 김치볶음덮밥!!

안에 고기도 잘게 썰어서 함께 볶아서 고기가 씹히는 맛이 일품…

0 글이 마음에 드셨다면 하트 꾸욱~