[Apache]아파치 서버 설치 후 PHP 및 MySQL 연동(2) | dasfef

2023.06.13

개인 기록용 입니다 :) 오타, 수정 등 피드백 환영


아파치 서버 설치 후 PHP 및 MySQL 연동(1) 이전 시간에 php 와 아파치의 연동이 잘 되는것을 확인했으니 이제 php 와 MySQL 의 연동이 잘 되는지 확인해보자 phpinfo 를 띄웠던것 처럼 DB 연동에 성공시 일정 문구를 띄워보도록 해보자

mysqltest.php 파일 작성

이런식으로 php를 작성해주고 c:\program files\apache24\htdocs 내에 넣어준다 (개인이 다른 경로로 넣었다면 해당 경로를 찾아주자) 그리고 웹브라우저에서 localhost/mysqltest.php 를 호출해주면 ​ php 에서의 DB 연결에 성공했다는 문구와 함께 내가 지정한 DB 내의 데이터들을 불러준다 이렇게 php 와 mysql 의 연동은 성공했지만 궁극적으로 나는 안드로이드에서 이 데이터를 얻어오고 다시 데이터를 쓸수도 있도록 하고 싶다 그러기 위해선 여러 단계가 필요한데 이 부분을 공부하면서 복잡할 수 있어 정리해두고자 한다 1) php 에서 json 으로 변환 2) 변환된 json 데이터를 안드로이드에서 불러온다 ==============​ 작성하다가 너무 피곤해서 잠이 들었다 이미 프로젝트는 발표까지 끝났고 약 일주일이 지나서야 생각이 나 계속해서 작성하려 한다 우선 json 으로의 변환도 php를 통해 해주어야 한다 하지만 내가 원하는 것은 안드로이드에서 입력 받은 것을 DB에 넣고싶고, 그 입력 받은 DB를 안드로이드에서 조회하고도 싶다 대략적인 절차 요약 안드로이드 -> DB 입력 1) php를 통해 데이터 입력 공간 제작 2) 안드로이드에서 입력시 php로 데이터 전송 원하는 값을 입력 하는 php 파일 작성​

PlaceRegister.php

php 를 배우지 않았던 터라 이곳에서 작은 고생을 했다 html 은 미리 알았던 터라 큰 문제는 없었지만 기존에 인터넷으로 보고 배운 mysqli 를 활용하는 법과 pdo 의 활용하는 법이 약간씩 다른점이 있어 이러한 부분을 익히고 html 자체도 php 안에 있어야 데이터가 들어간다는 것을 조금 늦게 깨달았다

AsyncTask 를 상속받는 임의의 클래스 생성

3) 입력된 데이터를 AsyncTask와 InputStream 을 활용해 DB로 전송 순으로 이루어진다 InsertData task = new InsertData(); task.execute("http://" + IP_ADDRESS + "/placeregister.php",Name,Addr,Review,Lat,Lon); 그리고 이런식으로 특정 행위 이후 클래스 객체 생성 후 해당 클래스에서 execute를 해주면 원하는 값을 원하는 php로 삽입할 수 있다 참조블로그: webnautes.tistory.com DB -> 안드로이드에서 조회 반대로 안드로이드에서 DB를 조회하는 것도 비슷하다 1) php를 통해 mysql 접근

getPlace.php

2) php에 sql문 작성 3) php 내부에서 json_encode 를 통해 json으로 변환 4) 안드로이드에서 json 데이터 읽기

추가설명) json 으로 변환된 데이터를 받아온 후 map 이라는 새로운 HashMap 객체 생성 후 map 에 각 데이터의 key와 value 를 넣어줌 이후 map 을 전역변수로 만들어 둔 hash 라는 이름의 HashMap 에 추가 이해하기 쉽게 말하면 2차원 Dictionary 같은 느낌으로 데이터가 들어간다 그리고 원하는 값을 꺼낼때 hash 의 ~번째 인덱스의 ~키의 값을 불러달라 하면 원하는 값 추출 가능 필자의 경우 원하는 위도, 경도 값의 데이터를 네이버 맵이 로드되었을때 불러오고 해당하는 위도,경도에 마커를 찍는 형태로 구현했다

최초 어플 실행 후 맵을 로드하면 아래와 같이 DB에 저장되어 있는 위도,경도 값을 불러 그 위치에 마커를 찍어준다 ​ ​ [ TravelJotter 최종 시행 화면 ]