์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋๊ธฐ
- promise
- addEventListener
- json
- async
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ
- Porject
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- prj
- js
- object
- ํผํ
- webpack
- execCommand
- ๊ฒ์
- https://m.blog.naver.com/tt2t2am1118/221010125300
- Import
- mysql
- setTimeout()
- ajax
- eport
- Project
- slow and steady
- database
- db
- callback
- sql
- JS #ํ๋ก์ ํธ
- await
- ๋น๋๊ธฐ
- Today
- Total
๋ชฉ๋กServer/๐ฌMySQL&๐PHP (8)
C-log
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bKEjvq/btsCAja2R3m/QGZUua7rKkikVjCeglmScK/img.webp)
์ด์ ๋ง์ง๋ง ํํธ์ด๋ค. topic๊ณผ author๋ฅผ ์ฐ๊ฒฐํ๊ณ author์ ๋ฆฌ์คํธ๋ฅผ ์๋ก ์์ฑํ ์ ์์ผ๋ ์์ ๊ณผ ์ญ์ ๋ฅผ ํด๋ณผ ๊ฒ์ด๋ค. ์ด์ ์ topic ๋ถ๋ถ์์ ์์ ๊ณผ ์ญ์ ์ ๋ณ๋ฐ ๋ค๋ฅธ ๊ฒ์ด ์๋ค. ์๋ author.php์ฝ๋๋ฅผ ์ดํด๋ณด์. WEB topic id name profile } ์ฌ๊ธฐ์ ๊ดํธ๋ฅผ ๋ฃ๊ณ ์๋๊ณ ์ ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๊ณ ์๊ณ ๊ฐ ๊ฒฐ์ ๋๋ค. --> ๋ณ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ฌ๊ธฐ์ ๋ด๊ฐ ํ๋ ์ค์๋ ํด๋น value ์์ฑ์ {}์ด ํ๊ธฐ๋ฅผ ํจ๊ป ์ ์ด ๋ด๋ฉด์ ์ค๋ฅ๋ฅผ ๋ฐ์์์ผฐ์๋ค. ์ด๋ฐ ์ค์๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋๋ฐ ์์ด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค๋ ๊ฒ์ ์์ง๋ง์. ์ด์ process_update_author.php์ ์ฝ๋๋ฅผ ์ดํด๋ณด์.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/byxGBc/btsCCyeFZuY/N0VWLMBpEnuiZulVbO4KkK/img.webp)
์ฐ๋ฆฌ๊ฐ ๋ง๋ค์ด ๋์ topic TABLE๊ณผ author TABLE์ ์๋ก ์ฐ๊ฒฐํด ์ค ๊ฒ์ด๋ค. ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ค์ ์๋์ ๊ฐ๋ค. author TABLE์ ์์ฑํ ๊ฒ์ด๋ค. ํด๋น MySQL ์ฝ๋๋ ์๋์ ๊ฐ๋ค. MariaDB [phpmysql]> CREATE TABLE author( -> id INT(11) NOT NULL AUTO_INCREMENT, -> name VARCHAR(30) NOT NUL, -> profile VARCHAR(200) NULL, -> PRIMARY KEY(id) -> ); ์ด์ topic TABLE์์ ํด๋น author_id๊ฐ์ด ๋ค์ด๊ฐ ์ ์๋ COLUM๋ฅผ ์ถ๊ฐ ํด์ค์ผํ๋ค. MariaDB [phpmysql]> ALTER TABLE topic ADD COLUMN author_id I..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cmKIVZ/btsCCwnBL6m/3HEYFU3RvHHKN94G5uOYD0/img.webp)
์์์ ์ฐ๋ฆฌ๊ฐ ๊ธ์ ์์ฑํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ผ๋ ์ด์ ๋ ๊ธ์ ์์ ํ๊ณ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ๋ณผ ๊ฒ์ด๋ค. ์ฐ์ ๊ธฐ์กด์ aํ๊ทธ๋ฅผ ์ด์ฉํด์ create๋ฅผ ์์ฑํ๋ ๋ฐฉ์๊ณผ๋ ๋ค๋ฅด๊ฒ php๋ฅผ ์ด์ฉํด์ URL์ ๋งค๊ฐ๋ณ์ id๊ฐ์ด ์ง์ ๋์์ ๋ update๋ฒํผ์ด ์์ฑ๋ ์ ์๊ฒ ๋ง๋ค์ด ๋ณผ ๊ฒ์ด๋ค. ํด๋น ์ฝ๋๋ ์๋์ ๊ฐ๋ค. ๊ธ ์์ ํ๊ธฐ $update_link ... $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); $..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Xab85/btsxibi1uMX/AkWwcOHlRCRy8bOKCMDJF0/img.jpg)
์ด๋ฒ์๋ ์ฐ๋ฆฌ๊ฐ ๋ง๋ค์ด ๋์ ์น์ฌ์ดํธ์ ๋ณด์์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ง๋ค์ด ๋ณผ ๊ฒ์ด๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ์ ๋ณด๋ฅผ ์ฒ ์ ํ ๋ฌด์ํ๋ ๊ฒ์ด๋ค. ์ฆ, ์ฐ๋ฆฌ๊ฐ ๋ง๋ค์ด ๋์ ์ฌ์ดํธ์ URL์์ ๋งค๊ฐ๋ณ์๋ฅผ ์กฐ์ํด์ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ๋ง์๋๋ก ์กฐ์ํ ์ ์๋ค. ์ด๊ฒ์ SQL injection์ด๋ผ๊ณ ํ๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ ์ฐจ๋จํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ๋ณผ ๊ฒ์ด๋ค. mysqli_real_escape_string() index.php 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, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/SNuYa/btsxaLRLTYT/hEPD0Fr62CmJJCTwpEUZUk/img.jpg)
MySQL์ ํตํด์ php๋ก ๋ฐ์ดํฐ๊ฐ์ ์์ฑํ๋ ๊ฒ๊น์ง ๋ฐฐ์ ๋ค. ์ด๋ฒ์๋ ์ฐ๋ฆฌ๊ฐ ๋ฐ์ดํฐ ์คํค๋ง๋ฅผ ์น๋ธ๋ผ์ฐ์ ๋ก ๋ํ๋ผ ์ ์๋ ๊ฒ์ ๋ฐฐ์ ๋ณผ ๊ฒ์ด๋ค. ์ด๊ฒ์ ๊ฐ์ฅ ์คํ ๋ช ๋ น์ด๋ MySQL์์๋ ๋ฐฐ์ ์ง๋ง SELECT์ด๋ค. ์ด๋ฅผ ํ์ฉํ ์ฝ๋๋ ์๋์ ๊ฐ๋ค. mysqli_fetch_array()
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bHH3Gv/btsw2Jtojye/UjdhcYqY47MrkD0d4PGVD0/img.jpg)
php์ MySQL์ ๊ธ ์์ฑ์ ํ๊ธฐ ์์ ๋จผ์ ์ด ๋ ์ฌ์ด์์ ๋ฒ์ด ์ง ์ ์๋ ์๋ฌ๋ฅผ ์ดํด๋ณผ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. mysqli_error(), mysqli_connect_errno()
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5wlMh/btswJzY6igl/s5yGTKtZa7QCcjlM7SW5O1/img.jpg)
php์ MySQL์ ์ฒซ ๋ง๋จ์ ์ฑ์ฌํ๋ ์ค๋ ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ๋ง๋ ์ ์๋ ์ฅ์๋ฅผ ๊พธ๋ฉฐ ์ค ๊ฒ์ด๋ค. ๋จผ์ ์นํ์ด์ง์ ๊ตฌ์ฑ์ ์ดํด๋ณด์. ์ด์ ์๋ ๊ตฌ์ฑ ํ๋ ๋ชจ์ต์ด๊ธฐ ๋๋ฌธ์ ์ด๋ ค์์ ์์ ๊ฒ์ด๋ค. WEB HTML Welcome Lorem ipsum dolor sit amet consectetur, adipisicing elit. Accusamus, voluptatum. ์ด๋ ๊ฒ ์ค๋น๊ฐ ๋์๋ค๋ฉด MySQL์ ์ค๋นํ๋ค. (๊ธ์ด์ด๋ xampp์ ์ฌ์ฉํ๋ค.) ์ดํ ์๋ก์ด DATABASE๋ฅผ ๋ง๋ค์ด์ค๋ค.MariaDB [mysql]> CREATE DATABASE phpmysql -> ; Query OK, 1 row affected (0.001 sec) MariaDB [mysql]> SHOW DATABASES -> ; +-..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sInDr/btsu9NQFYbR/Kp6279cjWMnJDtDECn1nqk/img.jpg)
์ ๋ชฉ์ MySQL์ ๋งํฌ์ธ ๋๊ณ ๋์ php์ ๋งํฌ์ธ ์ฝ๋ผ๋ฆฌ๋ฅผ ๊ฐ ๋๋ฌผ๋ค๋ก ํํ ํ์ ๋ฟ ์น๊ณผ ๋ฐ์ดํฐ์ ์ฐ๋์ ์ค๋ช ํ๋ ํฌ์คํธ์ด๋ค. ํด๋น ํฌ์คํธ๋ ์ํ์ฝ๋ฉ์ PHP & MySQL๊ฐ์๋ฅผ ํ ๋๋ก ์์ฑ์ ํ์ผ๋ฉฐ ํด๋น ์์์ ๋ณด๊ฑฐ๋ ์ด์ ๊ด๋ จ๋ ์ง์์ด ์๋ค๋ฉด ์ฆ๊ฒ๊ฒ ํฌ์คํธ๋ฅผ ์ฝ์ ์ ์์ ๊ฒ์ด๋ค. ๊ธ์ด์ด์ ๋ธ๋ก๊ทธ์ PHP ํฌ์คํธ์ MySQLํฌ์คํธ์ ์ฐ์ฅ์ ์ด๋ฉฐ ํด๋น ๊ด๋ จ ์ง์์ด ํ์ํ๋ค๋ฉด ํด๋น ์๋ฆฌ์ฆ๋ฅผ ์ฝ๊ฑฐ๋ ํ๋ฒ ์ค์ต์ ํ๊ณ ๋ณด๋ ๊ฒ์ ๊ถ์ฅํ๋ค. ํด๋น ๊ฐ์ ์์ ์๋ฃ๋ ํ๊ทธ์ ์ ๋ ฅ์ ํด๋๊ฒ ๋ค. ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ๋ง๋จ์ด ์ ์ฑ์ฌ๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ ๊ธ์ ๋ง์น๊ฒ ๋ค.