Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 오라클
- 자바스크립트 element api
- 자바스크립트 node
- 자바스크립트 객체
- 자바스크립트 jQuery
- javascript
- 보안뉴스요약
- oracle db
- ES6
- Oracle SQL
- 깃허브
- 카카오프로젝트
- 보안뉴스 요약
- 다크웹
- 카카오프로젝트 100
- 파이썬
- 랜섬웨어
- 보안뉴스한줄요약
- GIT
- 자바스크립트 API
- numpy
- php
- 자바스크립트 기본 문법
- python
- 보안뉴스
- oracle
- 카카오프로젝트100
- 자바스크립트 prototype
- 보안뉴스 한줄요약
- 자바스크립트
Archives
- Today
- Total
FU11M00N
[ PHP, MYSQL ] php & mysql update문 본문
생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅입니다.
- 현재 테이블의 값
현재 컬럼이 3개 존재합니다.
이 값을 php파일로 수정해보겠습니다.
현재 index.php 파일은 topic의 테이블에있는 컬럼의 "title" 들을 뽑아와 리스트로 출력합니다.
기본적으로 index.php에는 update를 할수있는 링크가 없지만,
isset함수를 이용하여 id에 값이있다면 "title" 과 "description"의 값들과 "update" 링크도 생겨납니다.
update를 누르게되면 "title" 과 "description"를 누를수있는 text 창이 출력됩니다.
그럼 text 창에서 원하는 값으로 변경 후,
값을 확인해보면 성공적으로 값이 바뀐 값이 출력됩니다.
- index.php
<?php
$conn = mysqli_connect(
'localhost',
'ID',
'PASSWORD',
'DB이름');
$sql = "SELECT * FROM topic";
$result = mysqli_query($conn, $sql);
$list = '';
while($row = mysqli_fetch_array($result)) {
$escaped_title = htmlspecialchars($row['title']);
$list = $list."<li><a href=\"index.php?id={$row['id']}\">{$escaped_title}</a></li>";
}
$article = array(
'title'=>'Welcome',
'description'=>'Hello, web'
);
$update_link = '';
if(isset($_GET['id'])) {
$filtered_id = mysqli_real_escape_string($conn, $_GET['id']);
$sql = "SELECT * FROM topic WHERE id={$filtered_id}";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
$article['title'] = htmlspecialchars($row['title']);
$article['description'] = htmlspecialchars($row['description']);
$update_link = '<a href="update.php?id='.$_GET['id'].'">update</a>';
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>WEB</title>
</head>
<body>
<h1><a href="index.php">WEB</a></h1>
<ol>
<?=$list?>
</ol>
<a href="create.php">create</a>
<?=$update_link?>
<h2><?=$article['title']?></h2>
<?=$article['description']?>
</body>
</html>
- update.php
<?php
$conn = mysqli_connect(
'localhost',
'ID',
'PASSWORD',
'DB이름');
$sql = "SELECT * FROM topic";
$result = mysqli_query($conn, $sql);
$list = '';
while($row = mysqli_fetch_array($result)) {
$escaped_title = htmlspecialchars($row['title']);
$list = $list."<li><a href=\"index.php?id={$row['id']}\">{$escaped_title}</a></li>";
}
$article = array(
'title'=>'Welcome',
'description'=>'Hello, web'
);
$update_link = '';
if(isset($_GET['id'])) {
$filtered_id = mysqli_real_escape_string($conn, $_GET['id']);
$sql = "SELECT * FROM topic WHERE id={$filtered_id}";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
$article['title'] = htmlspecialchars($row['title']);
$article['description'] = htmlspecialchars($row['description']);
$update_link = '<a href="update.php?id='.$_GET['id'].'">update</a>';
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>WEB</title>
</head>
<body>
<h1><a href="index.php">WEB</a></h1>
<ol>
<?=$list?>
</ol>
<form action="process_update.php" method="POST">
<input type="hidden" name="id" value="<?=$_GET['id']?>">
<p><input type="text" name="title" placeholder="title" value="<?=$article['title']?>"></p>
<p><textarea name="description" placeholder="description"><?=$article['description']?></textarea></p>
<p><input type="submit"></p>
</form>
</body>
</html>
- process_update.php
<?php
$conn = mysqli_connect(
'localhost',
'ID',
'PASSWORD',
'DB이름');
settype($_POST['id'], 'integer');
$filtered = array(
'id'=>mysqli_real_escape_string($conn, $_POST['id']),
'title'=>mysqli_real_escape_string($conn, $_POST['title']),
'description'=>mysqli_real_escape_string($conn, $_POST['description'])
);
$sql = "
UPDATE topic
SET
title = '{$filtered['title']}',
description = '{$filtered['description']}'
WHERE
id = {$filtered['id']}
";
$result = mysqli_query($conn, $sql);
if($result === false){
echo '저장하는 과정에서 문제가 생겼습니다. 관리자에게 문의해주세요';
error_log(mysqli_error($conn));
} else {
echo '성공했습니다. <a href="index.php">돌아가기</a>';
}
?>
SUA 정보보안 멘토링에 참여하고 있습니다.
'SUA 정보보안 > php&mysql' 카테고리의 다른 글
[ mysql ] mysql 관계형 데이터베이스. join문 (0) | 2021.02.14 |
---|---|
[ PHP, MYSQL ] php & mysql delete문 (0) | 2021.02.14 |
[ PHP, MYSQL ] php & mysql select문 2 (0) | 2021.02.14 |
[ PHP, MYSQL ] php & mysql select문 1 (0) | 2021.02.14 |
[ PHP, MYSQL ] php & mysql insert문 (0) | 2021.02.14 |
Comments