1. SELECT
- php의 코드는 일반 텍스트와 구분하여
<?php [...코드...] ?>
를 사용합니다.
또는<?[...코드...] ?>도
가능합니다. - HTML 코드 내에서 변수 등을 단순히 출력하고자 할 때는
<?=[변수 이름 등]?>
의 형태로 사용합니다. - 브라우저에 출력하는 코드는
echo [내용]
입니다. 내용을 그대로 소스로 내보냅니다. - 변수명은
$
로 시작합니다. - 스트링을 덧붙이고자 할 때는 + 대신
.
를 사용합니다. - 데이터베이스를 접속하는 코드는
$mysqli<span>=</span><span>new</span><span> mysqli(</span><span>[주소]</span><span>, </span><span>[사용자이름]</span><span>, </span><span>[비밀번호]</span><span>, </span><span>[DB이름]</span>
);
true
또는false
를 반환합니다. - 데이터베이스 쿼리를 읽어들이는 코드는
$res<span>=</span><span>$mysqli</span><span>-</span><span>></span><span> query(</span><span>[sql 구문]</span><span>);</span>
입니다. - 문장 끝에 세미콜론(
;
)은 반드시 붙여야 합니다.
<div class=container> <div class=row> <div class=col-12> <?php $host = '== 주소 =='; $user = '== ID =='; $pw = '== PWD =='; $dbName = '== DB NAME =='; $mysqli = new mysqli($host, $user, $pw, $dbName); /* if($mysqli){echo "MySQL 접속 성공";} else{echo "MySQL 접속 실패";} */ $sql = 'SELECT * FROM messages order by seq desc'; $res = $mysqli -> query($sql); // echo '<br>num_rows: count is '.$res->num_rows; // echo '<br>field_count: count is '.$res->field_count; ?> <table class="table table-hover"> <thead> <tr> <th scope="col">No.</th> <th scope="col">작성자</th> <th scope="col">메시지</th> <th scope="col">작성일자</th> </tr> </thead> <tbody> <?php while($row = mysqli_fetch_array($res)) { ?> <tr> <th scope="row"> <?=$row['seq']?> </th> <td> <?=$row['writer']?> </td> <td> <?=$row['message']?> </td> <td> <?=$row['wdate']?> </td> </tr> <?php }?> </tbody> </table> </div> </div> </div>
2. INSERT
- 한글이 깨지지 않도록 하려면 맨 위에
header<span>(</span><span>'Content-Type: text/html; charset=utf-8'</span>
);
를 추가합니다. - 매개변수(Parameter)를 받을 때는
$_GET[이름]
또는$_POST[이름]
으로 적고, 이름에는 따옴표를 넣지 않습니다. - 시퀀스를 사용하고자 할 때는
AUTO INCREMENT
설정(phpMyAdmin에서는 A_I라고 표시됨)을 부여하며 sql 구문 상에서는0
또는null
을 입력하면 됩니다. - sql 구문 php 변수를 넣는 방법은 sql 구문 안에 홑따옴표(
' '
)를 친 뒤$변수명
같은 방식으로 입력합니다. - 아래 예제에서는 리다이렉트 방식으로 자바스크립트를 이용하였습니다.
<?php header('Content-Type: text/html; charset=utf-8'); $writer = $_POST[writer]; $message = $_POST[message]; // echo $writer; // echo $message; (..생략..) $mysqli = new mysqli($host, $user, $pw, $dbName); if(!$mysqli){ echo "MySQL 접속 실패: "; } $sql = "insert into messages values"; $sql = $sql."(0, '$writer', '$message', default)"; if($mysqli -> query($sql)) { echo "<script>location.href='index.php';</script>"; } else { echo "<script>"; echo "alert('INSERT 오류발생');"; echo "location.href='index.php';"; echo "</script>"; } ?>
3. UPDATE
<?php header('Content-Type: text/html; charset=utf-8'); $seq = $_POST[seq]; $writer = $_POST[writer]; $message = $_POST[message]; include "initializeDB.php"; if(!$mysqli){ echo "MySQL 접속 실패: "; } $sql = "update messages set writer='$writer', message='$message'," ."wdate=sysdate() where seq='$seq'"; if($mysqli -> query($sql)) { echo "<script>location.href='index.php';</script>"; } else { echo "<script>"; echo "alert('UPDATE 오류발생');"; echo "location.href='index.php';"; echo "</script>"; } ?>
4. DELETE
<?php header('Content-Type: text/html; charset=utf-8'); $seq = $_POST['seq']; include "initializeDB.php"; $sql = "delete from messages where seq='$seq'"; if($mysqli->query($sql)) { echo "해당 글이 정상적으로 삭제되었습니다."; } else { echo "삭제에 실패했습니다."; } ?>
참고로 sql 관련 에러를 표시하는 방법은 다음과 같습니다 – echo mysqli_error($mysqli);
데이터베이스 구조
-- -- 테이블 구조 `messages` -- CREATE TABLE `messages` ( `seq` int(11) NOT NULL, `writer` varchar(20) NOT NULL, `message` text NOT NULL, `wdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `like_count` int(11) DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- 테이블의 인덱스 `messages` -- ALTER TABLE `messages` ADD PRIMARY KEY (`seq`); -- -- 테이블의 AUTO_INCREMENT `messages` -- ALTER TABLE `messages` MODIFY `seq` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=30; COMMIT;
1개의 댓글
PHP: FTP 내의 디렉토리 및 파일 탐색하기(재귀호출) - BGSMM · 2019년 9월 1일 12:21 오전
[…] 초기화 작업에 대한 코드는 생략합니다. 이 글을 참고해주세요. 재귀 탐색을 위해 iterateDirectory라는 함수를 만들었습니다. […]