PHP/4단계 PHP 닌자비법서

닌자 비법 기본~mysql DB pdo 접속 및 query

에혀 2020. 2. 9.

챕터8 의 객체와 클래스를 보면서, 빨리 뛰어넘으려고 했다가, 완전히 멘붕에 빠져버렸고, 쳅터 3 MySQL 부터 돌아가서 실습하기로 했다. ㅠㅠ 제길.

 

CH2 기본

include , echo 문에서 괄호를 사용하지 않는다.

종종 include문에 괄호를 쓴다. include문에서 파일명을 괄호로 감싸면 마치 date ()나 htmlspecialchars() 같은 함수와 비슷해보인다. 사실 include와 함수는 전혀 다르며 괄호를 쓰면 파일명을 표현하는 부분이 복잡해질 뿐이다. 이 책의 코드는 include문에 괄호를 쓰지 않는다. 빈번하게 사용되는 echo문도 같은 원칙을 적용한다

 

PHP 파일 내용이 PHP 코드로 끝나면 PHP 종료 태그를 넣을 필요가 없으며, 파일의 끝을 ?>로 인식한다. 일반적으로 파일 내용이 전부 PHP 코드일 때 ?>를 생략한다. PHP 대가들이 선호하는 방식이다.

 

echo __DIR__;

 

쳅터 3 MySQL

new PDO(‘mysql:host=호스트명;dbname=데이터베이스명’, ‘사용자명’, ‘비밀번호’)

 

jokes.php

<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=ijdb;charset=utf8','ijdbuser', 'mypassword');
$pdo->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT `joketext` FROM `joke`';
$result = $pdo->query($sql);
while ($row = $result->fetch()) {
$jokes[] = $row['joketext'];
}
$title = '유머 글 목록';

// 버퍼 저장시작
ob_start();
// 코드가 실행되지만, 브라우저 전송X. 버퍼에 저장한다.
include __DIR__ . '/../templates/jokes.html.php';
// $output 은 layout.html.php 에서 사용된다.
$output = ob_get_clean();

}
catch (PDOException $e) {
$title = '오류가 발생했습니다';
$output = '데이터베이스 오류: ' . $e->getMessage() . ', 위치: ' .
$e->getFile() . ':' . $e->getLine();
}
include __DIR__ . '/../templates/layout.html.php';
?>

layout.html.php

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="jokes.css">
<title><?=$title?></title>
</head>
<body>
<header>
<h1>인터넷 유머 세상</h1>
</header>
<nav>
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="jokes.php">유머 글 목록</a></li>
</ul>
</nav>
<main>
<?=$output?>
</main>
<footer>
&copy; IJDB 2017
</footer>
</body>
</html>

 

댓글