우선 mysql에 opentutorials파일의 topic이란 테이블에 값을 집어 넣을것이다.
필자는 이미 전에 만들어놓은것이 있기때문에 따로 생성은 안해도 되지만 만약 mysql에서 desc topic;이라고 쳤을때
정보가 없으면 topic이란 테이블을 생성해야한다.
먼저 mysql에서 접속하여 use opentutorials;를 치고 topic을 생성해보자
CREATE TABLE topic(
id INT(11) NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
description TEXT NULL,
created DATETIME NOT NULL,
PRIMARY KEY(id)
);
현재 php에서 글 생성을 id값과 title값, description값, 현재 시간만 입력 할 것이기 때문에 이렇게만 생성해주면된다.
topic 테이블을 생성했으면 php로 넘어가서 php소스를 작성해보자.
우선 index.php파일을 만들고
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>WEB</title>
</head>
<body>
<h1>WEB</h1>
<ol>
<li>HTML</li>
</ol>
<a href="create.php">create</a>
<h2>Welcome</h2>
Lorem ipsum dolor sit amet, consectetur adipisicing elit
</body>
</html>
위 소스를 입력하고 create링크를 생성해 create.php파일로 넘어갈수있게 만들어준다.
create.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>WEB</title>
</head>
<body>
<h1>WEB</h1>
<ol>
<li>HTML</li>
</ol>
<form action="process_create.php" method="POST">
<p><input type="text" name="title" placeholder="title"></p>
<p><textarea name="description" placeholder="description"></textarea></p>
<p><input type="submit"></p>
</form>
</body>
</html>
form태그로 input태그를 감싸고 메소드방식은 post, action값은 process_create.php로 줘서 submit버튼을 눌렀을 때
process_create.php파일로 전송되게 된다.
그리고 input 태그에 각 name값을 지정해줘서 process_create.php파일에서 받아오도록 한다.
<?php
$conn = mysqli_connect(
'localhost',
'root',
'P/W',
'opentutorials');
$sql = "
INSERT INTO topic
(title, description, created)
VALUES(
'{$_POST['title']}',
'{$_POST['description']}',
NOW()
)
";
$result = mysqli_query($conn, $sql);
if($result === false){
echo '저장하는 과정에서 문제가 생겼습니다. 관리자에게 문의해주세요';
error_log(mysqli_error($conn));
} else {
echo '성공했습니다. <a href="index.php">돌아가기</a>';
}
?>
※주의 : 실서버에서 root 사용자를 사용하는건 위험하다
INSERT INTO topic // topic 테이블에 행을 추가시킨다.
(title, description, created) // mysql-topic테이블에서 id값이 AUTO_INCREMENT 자동으로 증가되서 언급은 따로 안함.
VALUES( //그것에 대한 실제 값
'{$_POST['title']}', //create.php파일에 name="title"라는 input 값을 받아와서 mysql에 전송함
'{$_POST['description']}', //create.php파일에 name="description"라는 input 값을 받아와서 mysql에 전송함
NOW() // mysql-topic테이블에서 created는 DATETIME 을 가지고있어서 mysql에서 가지고있는 현재시간을 입력함.
)
";
$result = mysqli_query($conn, $sql);
if($result === false){
echo '저장하는 과정에서 문제가 생겼습니다. 관리자에게 문의해주세요';
error_log(mysqli_error($conn)); //에러가 떴을 때 apache2\logs 폴더에 error파일에 기록이 된다.
} else {
echo '성공했습니다. <a href="index.php">돌아가기</a>';
}
?>
create.php 파일에서 정보를 입력하고 submit을 클릭해서 전송을 성공했다면 mysql에서 select * from topic; 을 쳐보면
정보가 입력되었음을 알 수 있다.
'php' 카테고리의 다른 글
php 날짜 함수 (0) | 2020.06.26 |
---|---|
연산자 (0) | 2020.06.19 |
변수 (0) | 2020.06.19 |
php 날짜/시간 함수 (0) | 2020.06.18 |
php와 MySQL 연동하기 (0) | 2020.05.31 |