Mysql 데이터베이스 백업 


안녕하세요. 고코더 입니다.
MYSQL 은 개인 홈페이지에서는 가장 활용이 많이 되는
데이터베이스 일 것 입니다.

덕분에 사용자를 위한 편의 기능이 많은데
그중에서 DB의 내용을 sql 파일로 만들어
백업과 복원이 가능합니다.

물런 다른 DB에서도 sql파일을 만드는 방법은 활용 하기도 하는데
오라클를 쓰는 회사의 db를 sql로 만들면 아마도 몇백기가가 되겠네요.

그래서 오늘은 mysql의 전체 내용을
sql로 파일로 만들어 보겠습니다

▼자신의 데이터베이스 관리 툴로 접속해주세요.
호스팅을 쓴다며 거의 phpmyadmin 이시겠죠.



▼ 대상이 되는 데이터 베이스를 클릭하고
내보내기 탭을 실행합니다. 



▼ 그리고 옵션을 선택합니다. 내보내기 기본 옵션은 sql로 선택해주세요.
그리고 구조는 기본 옵션을 그대로 둡니다
다만 기존 DB를 업그레이드 할 예정이라면
체크하시면 됩니다. 테이블을 삭제하면서 생성 해줍니다. 


▼ 압축은 zip 으로 선택하고 실행합니다.
없음으로 하면 웹페이지의 sql그대로 노출되서 브라우저가 다운 



▼ 파일은 이렇게 압축된 zip 파일이 나옵니다. 


▼ 내용을 살펴보니 충실하게 sql 문이 작성되어 있습니다.


▼ 이 파일은 아까 내보내기 탭 옆에 있는 가져오기 탭에서



▼ 가져올 파일로 실행해주시면 자동으로 
복원이 됩니다. 



마무리


mysql이 개인 홈페이지의 최적화 되어 있지만
대형 시스템에서도 좋은 성능을 발휘 합니다. 


댓글을 달아 주세요


날짜 커스텀 하기 


안녕하세요. 고코더 입니다.

PHP에서는 date()함수를 통해서 현재 날짜와 시간의
표시 형식을 수정 가능 합니다. 

해당 숫자열을 date("변수")에 입력하면
지정한 형식대로 출력이 가능합니다.

Y - 연도
M - 월
D - 일

H - 시간
M - 월
S - 초

▼아래 코드를 입력하고 확인하면 
금방 이해 되실거라 생각 됩니다. 
대소문자에 따라 표현 방법이 다릅니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
    
echo "연도"."\n";
echo "Y - ".date('Y')."\n";
echo "y - ".date('y')."\n";
echo "\n";                   
                      
echo "월"."\n";
echo "M - ".date('M')."\n";
echo "m - ".date('m')."\n";
echo "\n";     
 
echo "일"."\n";
echo "D - ".date('D')."\n";
echo "d - ".date('d')."\n";
echo "\n";     
 
echo "시"."\n";
echo "H - ".date('H')."\n";
echo "h - ".date('h')."\n";
echo "\n";     
 
echo "분"."\n";
echo "I - ".date('I')."\n";
echo "i - ".date('i')."\n";
echo "\n";     
 
echo "초"."\n";
echo "S - ".date('S')."\n";
echo "s - ".date('s')."\n";
echo "\n";     
 
echo "표현형식 1"."\n";;
echo date('y-m-d h:i:s')."\n";
echo "표현형식 2"."\n";;
echo date('Y-M-D H:i:s')."\n";
 
?>
cs

gocoder_date_type.php



▼ 출력 화면 


date 함수를 사용해서 자유롭게 날짜 형식을 표시하세요.



마무리

 
자주 사용하지만 자주 까먹는 YMD HIS 




댓글을 달아 주세요


하드코딩 XML 개발 


안녕하세요. 고코더 입니다. 

요즘은 백엔드에서 XML과 JSON을 생성 하게 될일이 많습니다. 
보통은 PHP에서 제공하는 함수인

new SimpleXMLElement()

를 사용 합니다. 

그런데 복잡하지 않은 XML 이거나 임시로
개발한 XML 데이터라면 하드코딩으로 개발하는게 더 쉽게 빠르게 가능합니다.

▼ 아래 예제 코드를 확인해주세요.
1
2
3
4
5
6
7
8
9
10
<?php
Header('Content-Type: application/xml');
 
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>""\n";
echo "<item>""\n";
echo "<name>gocoder</name >" . "\n";
echo "<url>gocoder.tistory.com</url >" . "\n";
echo "</item>";
 
?>
cs

gocoder_xml.php



▼ 웹페이지에서 확인한 결과 입니다.


▼소스 보기로 하니 XML 형태 그대로 입니다. 



▼ echo 로 XML 형태를 그대로 작성하고 뒤에 엔터 값을 넣어주시면 
소스보기에도 깔끔하게 나타나겠죠 
echo "<item>". "\n";

▼헤더만 XML 로 지정해주면 됩니다.
Header('Content-Type: application/xml');

이렇게 하면 더 자유롭고 빠르게
직관적으로 XML 작성이 가능합니다.

하지만 성능은 조금 떨어지겠네요.


마무리


한눈에 보이는게 PHP 매력 아닌가요?


댓글을 달아 주세요


다른 나라 시간 노출 


안녕하세요.
고코더 입니다.

이전에 php.ini 에서 기존
기본 시간 타임존을 설정하는 방법을 배웠습니다.

그런데 소스상에서도
이 타임존 설정을 변경이 가능합니다.

그렇지만 보통 서버에서 설정하고 그 시간을 사용하지만
임시로 다른 나라의 시간으로 바꾸고 싶다거나

전세계 시간을 표시하고 싶다면 

이 함수를 사용하면 됩니다.

date_default_timezone_set('Asia/Seoul')

예제 소스는 아래와 같습니다.

1
2
3
4
5
6
7
8
9
<?php
 
date_default_timezone_set('America/New_York');
echo "뉴욕시간 :".date("Y-m-d H:i:s")."\n";
 
date_default_timezone_set('Asia/Seoul');
echo "한국시간 :".date("Y-m-d H:i:s");
 
?>



웹에서는 이렇게 표시 됩니다.



다른 나라 시간을 표시할때 사칙연산으로 계산하지말고
내장 함수를 사용해보세요.




마무리


역시 PHP는 합리적이고 편리하네요.
그런데 도시 참 많다
언제 다 가보지 


댓글을 달아 주세요



배열 합치기 


안녕하세요.
고코더 입니다.



PHP에서는 배열을 다루기 편리하게 함수를 준비 해놓았습니다.
요즘 같이 JSON 과 XML이 넘쳐 날때
array_merge()는 축복이 아닐까 싶습니다.

▼ 두개의 배열 값을 하나 합칠 수 있는 기능입니다.
사용법은 간단합니다.
array array_merge( 배열, 배열 , 배열 ... )

▼예제 소스를 만들어 설명 해보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
//1. 배열로 선언된 값들을 합치기
$json_array1 = array('g''o''c');//json_decode(file_get_contents("./json1.txt"));
$json_array2 = array('o''d''e''r');//json_decode(file_get_contents("./json2.txt"));
$json_array = array_merge($json_array1,$json_array2);
echo print_r($json_array);
 
//2. Json에서 배열로 된 데이터를 합치기
$json_array1 = json_decode(file_get_contents("./json1.txt"));
$json_array2 = json_decode(file_get_contents("./json2.txt"));
$json_array = array_merge($json_array1,$json_array2);
echo print_r($json_array);
?>
cs
1. 배열로 선언된 값들을 합치기
기본적인 배열을 합치는 기능을 시연해보았습니다.
배열로 된 값들을 함수를 이용해 간단하게 merge 가 되었습니다.

2. json 형태의 배열 값 합치기
Json의 시작과 끝을
array block start 와 end를 보통
대 가로로 감싸는 Json이 있습니다.

[// array block 시작
     { object block 시작
         데이터 
     }
]



이럴 경우에는 
예제처럼 json decode로 해석 후에 array_merge 로 합치면 됩니다. 



마무리

JSON 사용 하기 정말 편하네요






댓글을 달아 주세요


Jetbrains phpstrom, webstrom FTP 설정 


안녕하세요.
고코더 입니다.

PHP개발을 하실때 
FTP의 직접 붙어서 하는 경우가 많습니다. 

php를 개발할 수 있는 많은 도구가 지만
PHP스톰이 가장 강력하다고 말할 수 있습니다.

그런데 phpstorm도 FTP 연결을 통해 사용이 가능한걸
모르는 분들이 계셔서 리뷰를 남겨 보려고 합니다.

그리고 웹스톰도 같은 방식으로 FTP에 연결 할 수 있습니다.

우선 해당 단축키를 누릅니다.

++

CTRL + ALT + S



▼환경 설정으로 이동하는 단축키 입니다.
해당 검색 창 에서 아래 검색어를 입력합니다.
 Deployment 

▼ Build, Execution, Deployment -> Deployment 
메뉴로 이동해서 
+  버튼을 누릅니다. 


▼ FTP 서버의 이름을 정하고 OK를 누릅니다.


▼ FTP 서버의 정보를 입력합니다. 



▼설정을 완료했다면 이번엔

++

CTRL + ALT + 1
눌러 주세요

▼혹은 Tools -> Deployment-> Browse Remite Host 를 클릭해주세요.


▼ 그럼 해당 처럼 Remote Host 메뉴가 보이게 됩니다.
FTP상의 소스들이 보이네요


▼ 이번엔 간단한 ftp 설정을 해보겠습니다. 
CTRL + ALT + S
환경설정으로 이동합니다.

▼ Build, Execution, Deployment -> Deployment->Options

▼ Upload changed files automatically to the default server 에서 셀렉트 박스를
On explicit save action (Ctrl+s)를 설정 합니다. 
세이브 명령시 파일을 서버로 업로드 하는 설정입니다. 

이렇게 하여 FTP 작업 환경을 설정 하였습니다. 
강력한 스톰의 기능을 사용해보세요.


마무리

FTP 작업은 자동 완성 없는 에디터 플러스가 왜 이렇게 편한지.


댓글을 달아 주세요



JSON 데이터 합치기 


안녕하세요.
고코더 입니다.



날짜별로 json 데이터를 제공 받아 이틀 이상의 날짜를
데이터로 합쳐서 처리하려고 할때

Json을 합쳐야 하는 경우가 있습니다. 

인터넷 상에 올려놓은게 없어 보여서 
코딩하여 올려 봅니다.

▼주석 순서대로 실행해보면 이해가 충분히 되실거라 생각 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
//1. Json을 가져온다
$json_data1 =  file_get_contents('./first.json'true);
$json_data2 = file_get_contents('./second.json'true);
 
//2. Json_decode 한다음 배열에 담는다.
$mergeJSON[] = json_decode($json_data1,true);
$mergeJSON[] = json_decode($json_data2,true);
 
//3. 배열에 담은 데이터를 다시 Json_encode 한다.
$resultJSON = json_encode( $mergeJSON );
 
//4. 합쳐진 Json을 확인
echo $resultJSON;
 
?>
cs

▼만든 샘플 소스도 공유 드립니다.
PHP상에 실행 해보시고 참고하여 개발하시길 바랍니다.

▼웹사이트 실행 모습
2개의 json이 자연스럽게 하나의 json으로 합쳐졌습니다.


혹시 그래도 안되실 경우

Json이 대가로 [] 로 나눠진 경우 입니다.

이때는 아래 블로그를 참조 해주시기 바랍니다.

-> array_merge() / Json 배열 합치기



마무리

하나의 JSON으로 제공 받을 수 있도록
백엔드의 요청하는게 우선입니다.


Tag JSON, merge, PHP, 배열

댓글을 달아 주세요



array 배열을 for 문으로 출력 


안녕하세요. 고코더 입니다.

오늘은 간단한 PHP 예제를 배워보겠습니다.
배열의 값을 확인하는 가장 기초적인 방법은

▼ 이처럼 []을 이용해 순서대로 배열의 값을 꺼내 올 수 있습니다.
1
2
3
4
5
6
7
8
<?php
 
$num[0= 0;
$num[1= 1;
 
echo $num[1];
 
?>
cs



▼이것을 for문 모든 배열을 으로 자동적으로 꺼내 쓰는 방법은 이렇습니다.
전에 다룬  form 페이지의 받는 부분을 아래처럼 작성하였습니다. 

▼ 혹은 아래 파일로 테스트 해보세요

$_GET["gocoder"] 
     - 이 부분은 겟으로 넘오은 method의 변수 값을 받는 부분입니다.
     배열로 넘어왔다면 배열로 노출이 가능합니다.

count();
     - 배열의 갯수를 세어줍니다.



1
2
3
4
5
6
7
<?php
 
for($i = 0$i < count($_GET["gocoder"]); $i++) {
    echo $i."번째 value 값 :".$_GET["gocoder"][$i]."<Br>";    
}
 
?>
cs

▼위에 코드를 실행하면 아래처럼 확인이 가능합니다. 



▼테스트 가능한 소스를 올려 드립니다.

test.php


어떤 개발자 분께서 문의 주셔서
기초적인 부분을
짧게 남겨 드립니다.

감사합니다.


마무리


문의 내용 댓글 남겨주신 개발자님 홧팅 !


댓글을 달아 주세요


배열 변수 출력 


안녕하세요. 고코더 입니다.

오늘은 이전에 올린 php 예제에
-> 동적으로 추가된 input 값이 결과에서 받아지지 않을때





어떤 분이 결과 값을 확인 할 수 있는 
페이지를 요청하셔서 이참에 
print_r에 대해 다뤄 보려고 합니다.

print_r : 변수를 읽을 수 있게 정보를 출력해줍니다.

▼ 아래 예제를 보시면 
배열에 변수를 담았고
이를 print_r로 출력 해보았습니다.
1
2
3
4
5
6
<?php
 
$gocoder = array ('blog' => 'gocoder.tistory.com''name' => 'gocoder''category' => array ('dev''life''phone'));
echo print_r($gocoder);
 
?>
cs

▼print_r로 표현하면 이처럼 배열에 내용을 
확인 할 수 있게 해줍니다. 


개발자는 print_r()을 자주 쓰게 되는 함수 입니다.
디버깅 할 때 편리하기 때문입니다.
특히 파라미터에 넘어오는 값들을 확인하기 매우 좋습니다.

▼이전 페이지에서 배열로 input을 담은
파라미터를 확인할 수도 있습니다.
1
2
3
4
5
<?php
 
echo print_r($_GET["gocoder"]);    
 
?>



배열로 담긴 내용을 확인할 수 있게 만들어주는
함수라고 생각하시면 될거 같습니다.


마무리

print_r 자주 쓸 수록 개발이 빨라집니다.


댓글을 달아 주세요



DB 인코딩 변경 


안녕하세요 고코더 입니다.

PHP를 처음시작 했을때 많이 접하는 상황입니다.
정상적으로 DB연결을 하고 리스트로 뿌려주는데

??? ?? 이런 형태로 글자가 깨져있습니다.



문서 인코딩도 정상적이고
DB입력값도 정상인데 참이상합니다.

해당 오류는 아래 코드로 인코딩만 변경해서 PHP에 심어주면 해결됩니다.
1
2
3
4
5
6
7
<?php
$this->conn = mysqli_connect($this->host,$this->user,$this->password,$this->database,$this->port);
 
mysqli_query($this->conn, "set session character_set_client=utf8");
mysqli_query($this->conn, "set session character_set_connection=utf8");
mysqli_query($this->conn, "set session character_set_results=utf8");
?>
cs

보통은 별다른 설정없이 DB에서 가져오면
라틴어(?)로 되어 있습니다.

이를 euc-kr 이나 utf8로 자신의 인코딩으로 가져오시면 됩니다. 

▼ 이제 정상적으로 보이네요





마무리

영어권 국가였으면..


댓글을 달아 주세요