계발하는 개발자

[MySQL+PHP] MySQL 접속후 데이터 가져오기 본문

📚 Database/MySQL

[MySQL+PHP] MySQL 접속후 데이터 가져오기

dev_genie 2023. 8. 29. 16:08

지난번에 MySQL DB로 가지고 있던 JSON데이터를 import시켜주었다.

그렇다면 이제, DB에 저장된 데이터를 가져와서 화면 상에 출력하는건 어떻게 할까?

오늘은 이에 대한 포스팅을 남겨볼까 한다.

 

1. XAMPP 로컬 서버 실행

 

2. XAMPP 루트 폴더(htdocs) 열기

htdocs 폴더에 빠르게 접근하려면 컨트롤 패널 우측에 있는 [Explorer] 버튼을 누르면 된다.

혹은 xampp 저장된 드라이브 > htdocs 폴더 열기 하는 방법이 있다.

 

3. php 파일이 들어갈 폴더 생성

htdocs 폴더에 들어왔으면, 여기에 DB 데이터를 받아올 php 파일이 들어갈 폴더를 생성해준다.

나는 점포별 데이터를 가져올 것이기 때문에, 편의상 'store' 라고 만들어줬다.

 

4. 프로젝트 폴더 안에 php 파일 생성

그런 다음에 vscode 좌측 [햄버거버튼] > [파일] > [폴더 열기] 에서 방금 만든 폴더를 열어준다.

store 폴더 안에 php 확장자 파일을 만들어주고, 다음의 코드를 입력해준다.

<?php
    $host = "localhost";
    $user = "root";
    $pw = "MySQL비밀번호";
    $dbName = "DB명";

    /* MySQL 접속 */
    $con = new mysqli($host, $user, $pw, $dbName);
    
    if ( mysqli_error($con) ) {
        echo "MySQL 접속 실패!!", "<br>";
        echo "오류 원인 : ", mysqli_error();
        exit();
    }
    else {
        echo "MySQL 접속 성공!!😊👏";
    }

    mysqli_close($con);
?>

 

***** 아래는 MySQL root 비밀번호 설정 방법 !!! *****

 MySQL DB에 접속해서 저장된 데이터를 가져오게 하려면 MySQL root 비밀번호를 입력해줘야 한다.

 

1. XAMPP 패널에서 MySQL Admin 접속

 

2. 어드민페이지 상단[사용자 계정] 탭 클릭 > 사용자 개요에서 [권한 수정] 클릭

 

3. [Change Password] 클릭후 비밀번호 설정페이지로 이동

 

4. 비밀번호 생성후 암호 생성

비밀번호 입력후 암호 생성란의 [생성]버튼을 클릭하면 특정 암호를 생성시켜줄건데,

그렇게 생성된 암호를 일단 복사하자.

그러고나서 [실행] 버튼을 누르면 오류가 엄청 뜰건데 당황하지 말자!😅 원래 그렇다.

👇👇 아래 포스팅을 참고하면 오류를 해결할 수 있다.

 

[MySQL] 비밀번호 생성시 발생하는 오류 | Access denied for user 'root'@'localhost'

에러 MySQL에서 root 비밀번호를 변경하려고 하면 아래같은 에러가 꼭 뜬다. 원인 비밀번호를 설정한 순간부터 해당 서버에 암호가 걸리기 때문에 다른 비밀번호로 접근하려는 나의 접근을 공격으

ziszini.tistory.com

 

위 과정을 통해 오류를 해결하고 다시 어드민에 접속하면 무사히 접속이 된다!!

이제 내 MySQL 로컬 서버는 강력한 비밀번호에 의해 관리된다.

****** 여기까지 !!! ********

 

무튼 이렇게 설정한 비밀번호를 아래 password 부분에 넣어준다.

MySQL 서버에 접속 성공했을 경우, 기쁜 마음을 담아 아래 같은 메시지가 출력되도록 했다.

보시다시피 잘 출력되는 모습이다 :-)

접속했으니 이제 데이터베이스 특정 테이블에 있는 데이터를 모두 조회시킨 후, 

테이블 컬럼과 매칭되는 데이터를 가져와서 화면에 출력시키라는 쿼리를 짜주면 된다.

 

아래같이 각 과정에 필요한 쿼리문을 순차적으로 입력해주면,

화면에 내가 필요한 테이블 데이터를 잘 출력시켜올 수 있다.

<?php
    $host = "localhost";
    $user = "root";
    $pw = "MySQL비밀번호";
    $dbName = "DB명";

    /* MySQL 접속 */
    $con = new mysqli($host, $user, $pw, $dbName);

    /* 테이블 저장 데이터 모두 조회 */
    $sql = "SELECT * FROM stores";

    /* DB 쿼리 수행 */
    $ret = mysqli_query($con, $sql);

    /* DB 연결 확인 */
    if ( $ret ) {
        echo "테이블 조회 성공!<br>";
        echo "튜플 수:", mysqli_num_rows($ret);
    }
    else {
        echo "테이블 조회 실패!!";
        echo "오류 원인 : " , mysqli_error();
        exit();
    }

    /* 쿼리 결과 처리 */
    while($row = mysqli_fetch_array($ret)) {
        echo "<br>";
        echo $row['idx'], " ", $row['name'], " ", $row['sido'], " ", $row['gugun'], " ",
        $row['det'], " ", $row['lat'], " ", $row['lng'], " ", $row['tel'], " "; 
    } 
?>

사용한 DB 관련 함수들 

1. new mysql("서버주소","id","비번", "db명) / (또는) mysqli_connect("서버주소","id","비번", "db명)

-> php에서 MySQL 을 연결해주는 함수다.

 

2. mysqli_query()

-> 인자로 전달받은 SQL 구문을 실행하여, 그 결과를 반환하는 함수다.

-> 2개의 인자를 받는다.

-> 이 함수는 구문 실행 여부에 따라 TRUE/FALSE 값을 반환한다.

 

3. mysqli_fetch_array()

-> 쿼리의 응답 결과 레코드(행)를 배열로 반환하는 함수다.

-> 예를들어 아래에서 $ret 결과 세트에서 한 행씩을 가져와서 $row라는 배열에 저장후, 각 필드에 대한 정보를 사용하여 배열에 접근하고 출력시키는 역할을 한다.

$connection = mysqli_connect("localhost", "username", "password", "database");
$query = "SELECT * FROM users";
$result = mysqli_query($connection, $query);

while ($row = mysqli_fetch_array($result)) {
    echo "ID: " . $row['id'] . "<br>";
    echo "Name: " . $row['name'] . "<br>";
    echo "Email: " . $row['email'] . "<br>";
}

 

4. mysqli_num_rows()

-> DB에 저장된 row(행) 데이터 개수를 구하는 함수

 

5. mysqli_error()

-> 쿼리에 오류가 있는지 여부를 확인할 수 있는 함수

-> 오류가 있다면, 오류 설명을 반환한다.

 

LIST
profile

dev_genie

@dev_genie

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!