[PHP] MySQL 데이터베이스 접속하기

2022. 9. 29. 18:01Program/PHP

104_PHP MySQL 접속하기

[요약]

  • 데이터베이스 중 하나인 MySQL에 접속하는 방법에 대해 알아보자.

웹 서비스를 사용하면서 입력하는 블로그의 글, 그 블로그를 이용하기 위해 가입한 개인정보, '좋아요'를 누른 기록, 치룬 시험의 성적 정보, 쇼핑몰에서 구입한 상품명 등이 모두 데이터베이스에 기록된다.

이러한 데이터들은 table(테이블)이라는 구조에 저장된다.

 

table의 구조는 다음과 같다.

번호 상품명 입고 물량 판매 수량 원산지
1 티셔츠 200 150 미국
2 연필 140 20 일본
3 노트 100 30 독일

table 구조에서 1번 상품의 상품명은 티셔츠, 입고 물량은 200개, 판매 수량은 150개, 원산지는 미국이라는 것을 알 수 있다.

어떠한 데이터들은 의도한 대로 개인만 볼 수 있도록 할 수 있으며, 또한 어떠한 데이터들은 의도한 대로 모두에게 공유되어 서로에게 도움이 되도록 만들 수 있다.

데이터베이스의 종류는 크게 MySQL, MSSQL, ORACLE이 있는데, 여기서는 MySQL을 다루도록 한다.

MySQL은 무료이기때문에 자신만의 서비스를 만들기 적합하다.

현재 MySQL은 ORACLE이라는 회사가 소유하고 있다.

 

데이터베이스와 연동하려면 데이터베이스에 접속하는 프로그램을 만들어야 한다.

PHP에서는 이미 만들어져 있는 mysqli라는 클래스가 있다.

이 mysqli라는 클래스는 PHP가 MySQL에 접속할수 있는 기능을 가지고 있다.

mysqli 클래스의 인스턴스를 생성 시 생성자의 아규먼트로 MySQL의 호스트, 유저명, 비밀번호를 입력하여 MySQL에 연결한다.


[MySQL 접속 방법]

$dbConnent = new mysqli(호스트, 유저명, 비밀번호);

 

다음은 MySQL 접속 예제이다. masOS를 사용자라면 [코드 107]을 진행하면 된다.

PC를 사용한다면 데이터베이스 접속 프로그램 예제를 만들기 전에 거쳐야 하는 과정이 있다.

XAMPP를 설치하면 기본적으로 데이터베이스의 비밀번호가 설정되어 있지 않기 때문에 비밀번호를 설정하는 단계가 필요하다.

XAMPP 패널에서 MySQL에 있는 Admin 버튼을 클릭한다.

 

웹브라우저에 phpMyAdmin 프로그램은 MySQL에 접속하는 프로그램이다.

왼쪽에 보이는 리스트는 데이터베이스의 목록이며 mysql을 클릭후 오른쪽에 있는 SQL 탭을 클릭한다.

텍스트를 입력하는 공간이 보인다.

다음은 MySQL 접속 비밀번호를 변경하는 명령문이다.

변경할 비밀번호는 root이다.

다음의 명령문을 입력하고 [실행] 버튼을 클릭한다.

[데이터베이스 비밀번호 변경 명령문]

UPDATE mysql.user SET Password=PASSQORD('root') WHERE Host='localhost' AND User='root';
UPDATE mysql.user SET Password=PASSQORD('root') WHERE Host='127.0.0.1' AND User='root';
UPDATE mysql.user SET Password=PASSQORD('root') WHERE Host='::1' AND User='root';
UPDATE mysql.user SET Password=PASSQORD('root') WHERE Host='localhost' AND User='';
UPDATE mysql.user SET Password=PASSQORD('root') WHERE Host='localhost' AND User='pma';
FLUSH PRIVILEGES;

위의 명령문을 입력 후 하단에 위치한 [실행] 버튼을 클릭한다.

비밀번호를 변경하게 되면 웹브라우저에서 phpMyAdmin 프로그램에 접속할 수 없는 상태가 된다.

이때는 phpMyAdmin 프로그램의 설정 파일로 이동하여 변경한 비밀번호를 적용하면 웹브라우저에서 phpMyAdmin 프로그램에 접속이 가능해진다.

 

phpMyAdmin 프로그램의 설정 파일명은 config.inc.php이며 설정 파일의 위치는 일반적으로 다음과 같다.

C:\xampp\phpMyAdmin\config.inc.php

 

config.inc.php 파일을 열면 여러 코드가 보인다.

위의 코드에서 23번째 라인을 보면 값에 공백이 대입되어 있다.다음과 같이 각자만의 password를 대입후 저장한다.

$cfg['Servers'][$i]['password'] = '패스워드입력';

여기까지 마쳤다면 XAMPP에서의 데이터베이스 비밀번호 설정은 끝난것이다.

 

다음은 데이터베이스에 접속하는 예제이다.

[예제: 107_connenctDB.php ]

<?php
    $host = 'localhost';
    $user = 'root';
    $pw = '1234';
    $dbConnect = new mysqli($host, $user, $pw);
    $dbConnect->set_charset("utf8");

    if(mysqli_connect_errno()){
      echo '데이터베이스 접속 실패';
      echo mysqli_connect_error();
    } else {
      echo "접속 성공";
    }
?>

_먼저 데이터베이스 접속에 필요한 정보들을 변수에 대입한다.

_mysqli라는 클래스의 생성자에 데이터베이스 접속에 필요한 정보를 입력한다.

_인코딩을 utf-8로 세팅한다. 인코딩을 세팅하지 않을 경우 데이터베이스에서 출력된 데이터가 깨져서 표시되는 경우가 있다.

_mysqli 클래스의 생성자 순서는 host, user, password, database 순이며, 이 순서를 틀리게 입력하면 안된다.

_mysqli_connect_errno() 함수는 데이터베이스에 잘 접속되었는지, 접속이 안되었는지의 여부를 알기위해 사용한다.

_보통 데이터베이스의 접속에 실패했다면 접속 정보를 잘못 입력했을 가능성이 매우 크다. 하지만 어떤 원인인지 정확히 알려면 mysqli_connenct_error() 함수를 사용하면 된다. 이 함수는 계정 정보가 잘못되었는지 데이터베이스의 선택이 잘못되었는지 등을 알려준다.

 

실행결과

 

 


 

 

 

초보자를 위한 PHP 200제
김태영 지음 | 정보문화사