PHP와 MySQL 연동 원리

MySQL 서버를 제어하기 위해선 MySQL 모니터가 필요했다.

MySQL 모니터에서 sql문을 입력하면 MySQL 서버가 처리한 후 결과를 보여준다.
MySQL 모니터는 MySQL에 대해서 클라이언트인 셈이다.
(MySQL 클라이언트에는 Workbench, phpMyAdmin 등이 있다.)
이때, PHP 도 MySQL 서버에 대해서 클라이언트로서 동작이 가능하다.
PHP와 MySQL 연동을 위해
php mysql api를 검색 후, 이후 진행되는 실습에서는 mysqli api 방식을 사용하기로 하였다.
<?php
$conn = mysqli_connect('localhost','root','1111','mysqls');
$sql = "INSERT INTO topic
(title, description, created)
VALUES(
'{$_POST['title']}',
'{$_POST['description']}',
NOW()
)";
$result = mysqli_query($conn,$sql);
if ($result === false){
echo mysqli_error($conn);
echo '저장하는 과정에서 문제가 생겼습니다. 관리자에게 문의해주세요';
error_log(mysqli_error($conn));
} else {
echo '성공했습니다.';
}
if(mysqli_connect_error()){
printf("Connect failed: %s\n",mysqli_connect_error());
exit();
};
?>
① $conn = mysqli_connect('localhost','root','1111','mysqls');
// 데이터베이스에 PHP 접속
//함수에 들어가는 인자 : 호스트(데이터베이스의 서버 주소), 사용자 네임, 비밀번호, 데이터베이스(스키마) 이름
② $sql = "INSERT INTO topic
(title, description, created)
VALUES(
'{$_POST['title']}',
'{$_POST['description']}',
NOW()
)
";
// sql 문 작성. html에서 POST 방식으로 작성할 것이기 때문에 $_POST['name'] 방식 사용
③ $result = mysqli_query($conn,$sql);
//mysqli_query( ): php가 클라이언트가 되어 데이터베이스 서버에 sql문 실행
//실패 시 false, 성공 시 객체 리턴
// 함수에 들어가는 인자 : (데이터베이스 접속 정보 변수, sql문)
④ if ($result === false){
echo mysqli_error($conn);
// mysqli_error( ) :저장하는 과정에서 어떤 에러가 발생했는지 알려주는 함수
// 그러나 사용자에게 그대로 보여주면 보안 위협이 있으므로 아래와 같이 진행
echo '저장하는 과정에서 문제가 생겼습니다. 관리자에게 문의해주세요';
error_log(mysqli_error($conn)); //error_log( ): 아파치 error log 디렉토리에 에러사항이 기록됨
} else {
echo '성공했습니다.';
}
⑤ if(mysqli_connect_error()){
printf("Connect failed: %s\n",mysqli_connect_error());
exit();
}; // 접속 에러일 때 사용하는 함수
?>
'WEB > PHP' 카테고리의 다른 글
보안 (0) | 2021.01.31 |
---|---|
PHP와 MySQL_연동 후 데이터 출력 (0) | 2021.01.31 |
PHP & DATABASE (0) | 2021.01.30 |
form과 GET, POST (0) | 2021.01.29 |
PHP 문법 기초 (0) | 2021.01.28 |