PDO는 데이터 페칭 방식에 대해 다양한 옵션을 제공한다. 예를 들어, 결과를 연관 배열(associative array), 인덱스 배열(numeric array) 또는 객체로 가져올 수 있다.
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// 연관 배열로 데이터 가져오기
}
DB 생성
create database board;
use board;
create user 'boarduser1'@'localhost' identified by 'Boarduser1!';
grant all privileges on board.* to 'boarduser1'@'localhost';
flush privileges;
create table users
(userid char(10) not null,
username nvarchar(50) not null,
password nvarchar(255) not null,
primary key(userid));
create table posts
(postid int auto_increment not null primary key,
title nvarchar(100) null,
content longtext null,
createdDate datetime null,
userid char(10) null,
foreign key(userid) references users(userid));
데이터베이스 : board 사용자 : boarduser1 @ localhost 비밀번호 : Boarduser1! ** 생성한 사용자에게 board 데이터베이스의 모든 테이블에 권한 부여 users 테이블과 posts 테이블 생성
-> 생성한 칼럼들 확인
데이터베이스 연결하는 PHP
(dbconn.php) -> 데이터베이스와 PHP를 연결하는 코드 작성
<주의할 점>
mysql과 php를 연결하는 방식에는 두 가지 방식이 있다.
첫번째는 PDO를 활용한 방식이고, 두번째는 mysqli 방식이다.
** 여기서 연결을 할 때 한 가지 방식만을 사용해야 하고, 만약 PDO방식과 mysqli 방식을 동시에 사용할 경우 오류가 발생한다.
1) PDO 방식 사용
$pdo = new PDO("mysql:host={$serverName};dbname={$dbName};", $user, $password);
(register.php) -> ID, 이름, 비밀번호 입력하여 회원가입을 누르면 DB에 저장되도록 코드를 작성
<?php
include 'dbconn.php'; //데이터베이스 연결 설정 파일 포함
//회원가입 처리
if($_SERVER["REQUEST_METHOD"] == "POST") {
$userid = $_POST['userid']; //사용자 ID 입력값
$username = $_POST['username']; //사용자 이름 입력값
$password = $_POST['password']; //비밀번호 입력값 (평문으로 저장)
try {
//SQL 쿼리: 사용자 정보를 데이터베이스에 삽입
//(파라미터 바인딩 없이 직접 쿼리 문자열에 포함)
$sql = "INSERT INTO users(userid, username, password) VALUES('$userid', '$username', '$password')";
//쿼리 실행
$conn->exec($sql);
echo "회원가입이 완료되었습니다."; //성공 메시지 출력
header('Location: login.php');
} catch (PDOException $e) {
//쿼리 실행 실패 시 오류 메시지 출력
die("회원가입 중 오류가 발생했습니다: ".$e->getMessage());
}
}
?>
<!--회원가입 폼-->
<form method="POST">
사용자 ID: <input type="text" name="userid" maxlength="10" required><br>
사용자 이름: <input type="text" name="username" required><br>
비밀번호: <input type="password" name="password" required><br>
<input type="submit" value="회원가입">
</form>
사용자가 입력한 값들을 DB에 INSERT 구문을 통해 저장
<실행 화면> 데이터 값 입력 후 회원가입 버튼 클릭을 하면 입력한 값이 데이터베이스에 INSERT 된다.