[PHP] 9장. MySQL과 PD0를 사용한 데이터베이스 연결

img1.daumcdn.png

1. MySQL에 PD0를 사용한 데이터 베이스 연결

아래 코드는 MySQL 데이터베이스에 PD0을 사용해 연결하는 방법을 보여줍니다.

<?php 
// 데이터베이스 연결 정보 설정
$host = "localhost"; // 데이터베이스 호스트
$db  = 'your_database'; // 데이터베이스 이름
$user = 'your_username'; // 사용자 이름
$pass = 'your_password'; // 비밀번호
$charset = 'utf8mb4'; // 문자 집합

// DSM(Data Source Name) 생성
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
];

try {
    // PD0 객체 생성
    $pdo = new PDO($dsn, $user, $pass, $options);
    echo "데이터베이스에 성공적으로 연결되었습니다.<br>";
} catch(\PDOException $e) {
    echo "데이터베이스 연결 실패: " . $e->getMessage();
}
?>
  • 파일 인코딩: 파일을 UTF-8로 저장했는지 확인
  • PHP 버전: 사용 중인 PHP 버전이 해당 코드와 호환되는지 확인합니다

2. MySQL연동전 테이블 만들기

위 코드에서 Mysql을 연결해서 php로 데이터베이스를 불러오는 방법을 알아보았습니다. 위 코드는 MySQL의 흐름을 어느정도 이해해야 코드를 적용할 수 있습니다. MySQL을 실행하기위해 아래 포스팅을 참고해 MySQL을 세팅합니다.

 

[MySQL] 2장. MySQL VSCODE 설치법과 기본개념

[MySQL] 1장. MySQL은 무엇인가?1995년 5월 23일 오라클이 개발한 데이터베이스 관리시스템인 MYSQL이 발표됩니다. MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터 저장 및 관리에

thinky.tistory.com

  • 터미널에서 mysql 접속하기
mysql -u root -p
  • 유저 만들기
CREATE USER 'pace'@'localhost' IDENTIFIED BY '1234';
  • 사용자 권한 확인
SELECT User, Host FROM mysql.user;
  • 권한 부여
GRANT ALL PRIVILEGES ON koras02.* TO 'pace'@'localhost';
  • 권한 변경 사항 적용
FLUSH PRIVILEGES;
  • MySQL 종료
EXIT;

3. 쿼리 실행하기

아래 데이터베이스를 사용해 데이터 삽입 데이터 조회를 할 수 있습니다.

<?php 
// 데이터베이스 연결 정보 설정
$host = "localhost"; // 데이터베이스 호스트
$db  = 'your_database'; // 데이터베이스 이름
$user = 'your_username'; // 사용자 이름
$pass = 'your_password'; // 비밀번호
$charset = 'utf8mb4'; // 문자 집합

// DSM(Data Source Name) 생성
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
];

try {
    // PD0 객체 생성
    $pdo = new PDO($dsn, $user, $pass, $options);
    echo "데이터베이스에 성공적으로 연결되었습니다.<br>";

    // 테이블 생성
    $sqlCreate = "CREATE TABLE IF NOT EXISTS person_table (
      id INT AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(255) NOT NULL,
      age INT NOT NULL
    )";

    $pdo->exec($sqlCreate);
    echo "테이블이 생성되었습니다. <br>";

    // 데이터 삽입
    $sql = "INSERT INTO person_table (name, age) VALUES (:name, :age)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute(['name' => 'koras02', 'age' => 27]);
    echo "데이터가 성공적으로 삽입되었습니다.<br>";

    // 데이터 조회
    $sql = "SELECT * FROM person_table";
    $stmt = $pdo->query($sql);
    while ($row = $stmt->fetch()) {
        echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
    }

} catch(\PDOException $e) {
    echo "데이터베이스 연결 실패: " . $e->getMessage();
}
?>
  • 데이터베이스 연결: PDO를 사용해 MySQL에 연결
  • 테이블 생성:
    • CREATE TABLE  IF NOT EXISTS person_table명령어를 사용해 테이블을 생성합니다.
    • 테이블 구조는 id, name, age 컬럼을 포함해, id는 자동 증가하는 기본 키
    • IF NOT EXISTS를 사용하여 테이블이 이미 존재할 경우 오류를 방지
  • 데이터 삽입:
    • INSERT INTO person_table (name, age) VALUES (:name, :age) 쿼리를 사용해 데이터를 삽입
  • 데이터 조회:
    • SELECT * FROM person_table 쿼리를 사용해 테이블의 데이터를 조회
  • 주의 사항
    • your_database, your_table, your_username, your_password는 실제 MySQL의 데이터베이스와 사용자 정보로 변경해야 합니다.
    • 이 코드는 테이블이 존재하지 않는 가정 하에 새로 생성하는 코드로, 이미 존재하면 기존의 테이블로 사용합니다.

 

 

GitHub - Koras02/php-tutorial

Contribute to Koras02/php-tutorial development by creating an account on GitHub.

github.com

 

LIST