[Android] PHP와 MYSQL을 이용한 DB 관리하기 + 닷홈 웹호스팅 (1)

Jinny·2021년 3월 17일
2

Android

목록 보기
23/32
post-thumbnail

오늘을 재빠르게 방법을 순서대로 설명하겠습니다.

🚩 닷홈에서 웹 호스팅 신청하여 도메인 만들기

  1. 닷홈에서 계정을 생성한다.

  2. 로그인 후, 웹호스팅 > 무료호스팅으로 들어간다.

  3. 웹 호스팅 설정 정보를 입력해준다.
    여기서 FTP ID/PW 와 DB명/ID/PW는 까먹지 않게 따로 메모해두는 것이 좋다. 추후 안드로이드 스튜디오 연결 시 필요한 정보들이다.

  4. 나머지 정보들도 확인 후 동의 / 신청하기를 눌러준다. 모두 완료가 되면 웹호스팅 목록에 도메인이 생성된 것을 확인 할 수 있다.

🚩 FileZilla로 php 파일 업로드하기

fileZilla는 대용량 파일 전송에 적합한 오픈 소스 기반의 프로그램이다. FTP 클라이언트를 이용해서 원격에 파일을 업로드하고, 다운로드 할 수 있다. 다운로드 하러가기!
아래는 다운로드 후 실행한 화면이다.

  1. 호스트 = 도메인주소 / 사용자명 = FTP ID / 비밀번호 = FTP PW / 포트 = 21 을 적어준 후 '빠른연결'을 누른다.

  2. 연결이 성공하면 아래와 같이 디렉터리 목록이 조회되는데 html 폴더로 들어간다. 이곳에 PHP 파일을 올릴 것이다.

🚩 Database 생성하기

  1. 다시 닷홈으로 들어가 '마이 닷홈 > 호스팅 관리 > 제공 내역(최하단에 위치)'으로 들어간다.
    여기서 MySQL관리 주소로 들어간다.들어가서 로그인을 해주면 된다.(FTP 계정과 동일)

  2. 로그인 완료 후 상단의 SQL을 눌러 쿼리문을 작성해준다.
    담고자 하는 데이터 테이블을 생성하면 된다.예를 들어 친구들의 정보를 담는다고 가정하고 FRIENDS 테이블과 2개의 칼럼을 만든다.
    만든 후에는 실행을 눌러 저장하면 된다.

CREATE TABLE FRIENDS (
		Name VARCHAR(50) NOT NULL,
    		StudentID VARCHAR(50) NOT NULL,
    		CONSTRAINT PRIMARY KEY(StudentID)
);

만들기 성공!

🚩 PHP 파일 추가하기

정보를 넣는 php 파일들을 만든다.
++ 참고로 아직 php 지식이 조금 부족해서 구글링을 통해 코드를 가져와봤다.
<insertdata.php>

<?php 
 
    error_reporting(E_ALL); 
    ini_set('display_errors',1); 
 
    include('start.php');
 
 
    $android = strpos($_SERVER['HTTP_USER_AGENT'], "Android");
 
 
    if( (($_SERVER['REQUEST_METHOD'] == 'POST') && isset($_POST['submit'])) || $android )
    {
 
        $StudentID = $_POST['StudentID'];
	    $Name    = $_POST['Name'];
        
        if(empty($StudentID)){
            $errMSG = "학번을 입력하세요.";
        }
        else if(empty($Name)){
            $errMSG = "이름을 입력하세요.";
        }
 
        if(!isset($errMSG)) // 이름과 학번 모두 입력
        {
            try{
                // SQL문을 실행하여 데이터를 MySQL 서버의 FRIENDS 테이블에 저장
                $stmt = $con->prepare('INSERT INTO FRIENDS(Name, StudentID) VALUES(:Name, :StudentID)');
                $stmt->bindParam(':Name', $Name);
		    $stmt->bindParam(':StudentID', $StudentID);
 
                if($stmt->execute())
                {
                    $successMSG = "새로운 친구를 추가했습니다.";
                }
                else
                {
                    $errMSG = "친구 추가 에러";
                }
 
            } catch(PDOException $e) {
                die("Database error: " . $e->getMessage()); 
            }
        }
 
    }
 
?>
 
 
<?php 
    if (isset($errMSG)) echo $errMSG;
    if (isset($successMSG)) echo $successMSG;
 
	$android = strpos($_SERVER['HTTP_USER_AGENT'], "Android");
   
    if( !$android )
    {
?>
    <html>
       <body>
 
            <form action="<?php $_PHP_SELF ?>" method="POST">
                Name: <input type = "text" name = "Name" />
                StudentID   : <input type = "text" name = "StudentID" />
                <input type = "submit" name = "submit" />
            </form>
       
       </body>
    </html>
 
<?php 
    }
?>

<start.php>

<?php
 
    $host = 'localhost';
    $username = 'jinny0422'; # MySQL 계정 아이디
    $password = 'wlsdl316!'; # MySQL 계정 패스워드
    $dbname = 'jinny0422';  # DATABASE 이름
 
 
    $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
    
    try {
 
        $con = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8",$username, $password);
    } catch(PDOException $e) {
 
        die("Failed to connect to the database: " . $e->getMessage()); 
    }
 
 
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
 
    if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) { 
        function undo_magic_quotes_gpc(&$array) { 
            foreach($array as &$value) { 
                if(is_array($value)) { 
                    undo_magic_quotes_gpc($value); 
                } 
                else { 
                    $value = stripslashes($value); 
                } 
            } 
        } 
 
        undo_magic_quotes_gpc($_POST); 
        undo_magic_quotes_gpc($_GET); 
        undo_magic_quotes_gpc($_COOKIE); 
    } 
 
    header('Content-Type: text/html; charset=utf-8'); 
    #session_start();
?>

이 파일을 위 Filezilla의 html 폴더에 넣어준다. 요렇게!

👩‍💻 실행 결과

http://FTP아이디.dothome.co.kr/insertdata.php
로 들어가보면 이름과 학번을 입력할 수 있다.

데이터가 잘 들어와 있는 걸 확인 할 수 있다.

이제 안드로이드에서 이 데이터베이스를 사용하는 일이 남았다!
다음 포스팅에서 계속...!


참고 : 닷홈 + 파일질라 참고 & php 출처
profile
신입 개발자👩‍💻

0개의 댓글