MySQL DB의 자료를 안드로이드 앱에서 사용하기 위해서는 중간에 php 또는 node.js 등의 서버 프로그래밍을 거쳐야 합니다.


그래서 이번에는 mysql DB 내용을 php를 활용하여 json 형식으로 가져오는 코딩을 해보겠습니다.


과정은 간단합니다. php 파일 하나만 만들면 되는데요.

php 코드는 다음과 같습니다.

<?php 
// DB 접속 
$con=mysqli_connect("DB접속도메인또는IP:포트(3306이아닌경우)","DB사용자ID","비밀번호","사용할DB"); 
// 접속 실패 시 메시지 나오게 하기 
if (mysqli_connect_errno($con)) 
{ echo "MySQL접속 실패: " . mysqli_connect_error(); } 

// 기본 클라이언트 문자 집합 설정하기 
mysqli_set_charset($con,"utf8"); 
// 쿼리문 실행, 결과를 res에 저장 
$res = mysqli_query($con, "select * from humaninfo"); 
// 결과를 배열로 변환하기 위한 변수 정의
$result = array(); 
// 쿼리문의 결과(res)를 배열형식으로 변환(result) 
while($row = mysqli_fetch_array($res)) 
{ array_push($result, array('name'=>$row[0],'yearmonthday'=>$row[1],'age'=>$row[2],'address'=>$row[3])); } 
// 배열형식의 결과를 json으로 변환 
echo json_encode(array("result"=>$result),JSON_UNESCAPED_UNICODE); 
// DB 접속 종료 
mysqli_close($con); 
?>

해당 파일을 서버에 올리고 실행하면 다음과 같이 결과가 출력됩니다.

{"result":[{"name":"강인한","yearmonthday":"19840831","age":"33","address":"서울시 강서구 화곡동"},{"name":"김길동","yearmonthday":"19920910","age":"25","address":"경기도 김포시 풍무동"}]}

이제 이 내용을 안드로이드에서 읽어오면 됩니다.

감사합니다.

Visual Studio Code 에서 PHP 프로그래밍 및 디버그를 해보겠습니다.


Visual Studio Code 홈페이지에서 PHP 프로그래밍을 하는 방법에 대하여 소개되어 있는 페이지가 있습니다. 아래 링크를 클릭해 주세요.

https://code.visualstudio.com/docs/languages/php


이 페이지대로만 하면 쉽게 할 수 있겠다고 생각하겠지만 그렇지 않습니다.


전제 조건으로 PHP가 컴퓨터에 설치되어 있어야 합니다.


1. http 서버 및 php 설치


    - http 서버는 apache를 사용해도 되고 윈도우에서 제공하는 iis를 중 원하는 서버를 설치 및 설정합니다.

    - php는 홈페이지에서 직접 다운로드 받아서 설치합니다. iis의 경우 "웹 플랫폼 설치 관리자"를 통해 php를 설치할 수도 있습니다.


2. PHP 확장프로그램 설치


    - 서버 설정 및 php 설치가 완료되었으면 visual studio code 확장 프로그램 중 PHP IntelliSense 와 PHP Debug 를 설치합니다.


3. php 실행파일 경로 설정


    - 설치가 완료되었으면 상단 메뉴 중 파일(F) - 기본 설정(P) - 설정(S) 로 들어가서 php 실행파일 경로를 지정합니다.


4. 디버깅


    - 디버깅을 위해서는 xdebug 를 설치해야 합니다. (저는 여기서 막혀서 좀 해맸습니다.)

    4-1, xdebug 설치 방법

        - 가장 쉽게 xdebug를 설치하는 방법은 xdebug install wizard 페이지(https://xdebug.org/wizard.php)에 phpinfo의 정보를 복사해서 붙여넣기 하면 설치 방법을 알려줍니다.

        4-1-1) xdebug 파일(dll 파일 1개)을 다운로드 받습니다.

        4-1-2) php설치폴더 하위에 있는 ext" 폴더에 다운로드 받은 dll 파일을 복사합니다.

        4-1-3) php설치폴더에 있는 php.ini 파일을 편집기로 열어서 xdebug 관련 설정 값을 추가합니다.


[XDebug]

zend_extension="xdebug dll 파일이 있는 경로"

xdebug.remote_enable = 1

xdebug.remote_autostart = 1


        4-1-4) 웹 서버를 재시작 합니다.

    

    - xdebug 설치가 완료된 후에 visual studio code 를 재시작합니다.

    - php 폴더를 추가하고 php 파일을 열고 F5 버튼을 클릭하면 디버그 언어를 선택하는 창이 나타납니다(java php 등)

    - php를 선택하면 xdebug를 활용하여 디버깅을 할 수 있습니다.


감사합니다.

안드로이드에서는 외부 데이터베이스(Mysql)에 직접 접속할 수 없습니다.


이전에는 Mysql에서 제공하는 MySQL Connector 자바 파일을 가져와서 접속이 가능했는데 보안 상 이유 때문인지 더 이상 서비스가 안된다고 하네요.


그래서 중간에 서버 프로그래밍(php 또는 node.js)를 활용하면 mysql에 접속할 수 있다고 합니다.


관련 자료를 여러가지 찾아봤는데 가장 잘 되어있는 예제를 해외 사이트에서 찾았습니다.

아래 링크를 확인해 주세요.

http://freeprojectcode.com/android/android-mysql-basic-crud-operation-tutorial-for-android-studio-project/


그래서 아래 프로젝트를 따라해 보도록 하겠습니다.


게시하신 분은 하나의 글로 끝내셨는데 이해하면서 진행하려면 아래 내용의 서비스 및 프로그램이 필요합니다.


1. MySQL, 웹 서버(아파치, IIS 등) + php


저같은 경우 최근에 구매한 Synolygy NAS를 활용해서 Mysql과 아파치+php 환경을 외부에서 접속할 수 있도록 구축해놨습니다.


2. php 에디터(드림위버, EditPlus 등)


php 에디터의 경우 무료 및 유료 프로그램이 많이 있지만 어도비 사의 드림위버를 사용하였습니다.

(영상, 사진 편집등도 하기 때문에 adobe 사의 create croud 플랜을 구독중에 있습니다.)

최근 MS에서 무료로 배포중인 visual studio code 에서 php 언어를 지원하고 있습니다.


3. 안드로이드 스튜디오


안드로이드 스튜디오는 무료로 설치 가능합니다.


위의 3가지 환경이 준비되었다면 링크의 내용을 따라해 볼 수 있습니다.

과연 어떤 프로세스로 구현되어 있을 까요?


1. MySQL에서 DB 및 Table를 생성한다.


2. PHP로 MySQL 접속, Table에 자료 쓰기, 찾기, 수정, 삭제를 할 수 있는 php파일을 생성한다.


3.안드로이드 스튜디오에서 php를 활용하여 mysql에 접속하는 화면 및 클래스를 생성한다.


아래 3개의 글을 읽고 따라해 보시기 바랍니다.


"안드로이드 DB CRUD(쓰기, 읽기, 수정, 삭제) 2 - MariaDB 설정하기" - http://ilbbang.tistory.com/45

"안드로이드 DB CRUD(쓰기, 읽기, 수정, 삭제) 3 - PHP로 MySQL에 접근하기" - http://ilbbang.tistory.com/47

"안드로이드 DB CRUD(쓰기, 읽기, 수정, 삭제) 4 - Android 화면 및 구현하기" - http://ilbbang.tistory.com/52


감사합니다.

+ Recent posts