์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Import
- sql
- json
- object
- https://m.blog.naver.com/tt2t2am1118/221010125300
- database
- callback
- ๋๊ธฐ
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ
- JS #ํ๋ก์ ํธ
- ๋น๋๊ธฐ
- db
- ๊ฒ์
- ajax
- slow and steady
- webpack
- await
- eport
- async
- Project
- addEventListener
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- promise
- execCommand
- setTimeout()
- ํผํ
- Porject
- js
- mysql
- prj
- Today
- Total
C-log
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์ฒซ ๋ง๋จ ๋ณธ๋ฌธ
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์ฒซ ๋ง๋จ
4:Bee 2023. 10. 5. 18:06php์ MySQL์ ์ฒซ ๋ง๋จ์ ์ฑ์ฌํ๋ ์ค๋ ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ๋ง๋ ์ ์๋ ์ฅ์๋ฅผ ๊พธ๋ฉฐ ์ค ๊ฒ์ด๋ค. ๋จผ์ ์นํ์ด์ง์ ๊ตฌ์ฑ์ ์ดํด๋ณด์. ์ด์ ์๋ ๊ตฌ์ฑ ํ๋ ๋ชจ์ต์ด๊ธฐ ๋๋ฌธ์ ์ด๋ ค์์ ์์ ๊ฒ์ด๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WEB</title>
</head>
<body>
<h1>WEB</h1>
<ol>
<li>HTML</li>
</ol>
<h2>Welcome</h2>
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Accusamus, voluptatum.
</body>
</html>
์ด๋ ๊ฒ ์ค๋น๊ฐ ๋์๋ค๋ฉด MySQL์ ์ค๋นํ๋ค. (๊ธ์ด์ด๋ xampp์ ์ฌ์ฉํ๋ค.) ์ดํ ์๋ก์ด DATABASE๋ฅผ ๋ง๋ค์ด์ค๋ค.
MariaDB [mysql]> CREATE DATABASE phpmysql
-> ;
Query OK, 1 row affected (0.001 sec)
MariaDB [mysql]> SHOW DATABASES
-> ;
+--------------------+
| Database |
+--------------------+
| grade_card |
| information_schema |
| mysql |
| opentutorials |
| performance_schema |
| phpmyadmin |
| phpmysql |
| test |
+--------------------+
8 rows in set (0.001 sec)
MariaDB [mysql]> use phpmysql
Database changed
์ดํ topic TBALE์ ๋ง๋ค์ด์ค๋ค. ์์ฑ ํ์ ์ด๋ค topic์ด ์ด๋ป๊ฒ ์์ฑ๋์๋์ง ํ์ธํด๋ณด์. ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
MariaDB [phpmysql]> CREATE TABLE topic(
-> id int(11) NOT NULL AUTO_INCREMENT,
-> title varchar(45) NOT NULL,
-> description text,
-> created datetime NOT NULL,
-> PRIMARY KEY(id)
-> ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.011 sec)
MariaDB [phpmysql]> SHOW TABLES;
+--------------------+
| Tables_in_phpmysql |
+--------------------+
| topic |
+--------------------+
1 row in set (0.001 sec)
MariaDB [phpmysql]> DESC topic;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(45) | NO | | NULL | |
| description | text | YES | | NULL | |
| created | datetime | NO | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
4 rows in set (0.024 sec)
์ฌ๊ธฐ์ InnoDB๋ MySQL์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์์ง์ด๋ฉฐ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค. ์ง๊ธ์ ์ด์ ๋๋ก๋ง ์๊ณ ์ดํ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌ์คํ ํ ๋ ๋ ์์ธํ ๋ณด์.
์ด๋ ๊ฒ ๊ฐ ์ค๋น๊ฐ ๋์๋ค๋ฉด php์ MySQL์ ์ฐ๋ํ๋ ์์
์ ์์ํด๋ณผ ๊ฒ์ด๋ค.
์์
์ ์์ํ๊ธฐ ์ ์ ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ์์๋ฌ์ผ ํ ๊ฒ์ php๋ MySQL Server์
์ฅ์์ ํด๋ผ์ด์ธํธ์ด๋ค. ์ฆ php๋ ์์ฒญ์ ํ๋ ์
์ฅ์ด๋ผ๋ ๊ฒ์ด๋ค. ๊ทธ ๊ด์ ์ผ๋ก ์๋ ์์
์ ๋ฐ๋ผํด๋ณธ๋ค๋ฉด ์กฐ๊ธ ์ดํด๊ฐ ๋ ์ ๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ php API๋ฅผ ์ฌ์ฉํด์ MySQL์ ์ ๊ทผ ํ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ PDO_MySQL๊ณผ mysqli๋ผ๋ API๋ฅผ ์์์ผํ๋ค. ์ด๋์ ์ฐจ์ด๋ ๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด PDO๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ด๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ MySQL๋ง ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ mysqli API๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ค. ๊ฒ์ ์ฐฝ์ "php mysqli api"๋ฅผ ๊ฒ์ํด์ php ๊ณต์์ฌ์ดํธ์ ๊ธ์ ์ดํด๋ณด๋ฉด ํจ์ ๋ฐฉ์(procedural)๊ณผ ๊ฐ์ฒด์งํฅ ๋ฐฉ์์ด ์๋๋ฐ ์ฐ๋ฆฌ๋ ํจ์ ๋ฐฉ์์ ์ฌ์ฉํ ๊ฒ์ด๋ค.
mysqli_connect()
์ฐ์ insert.php ํ์ผ์ ์์ฑํ๊ณ ์๋ ์ฝ๋๋ฅผ ์
๋ ฅํด๋ณด์.
<?php
// mysql์ ์ ์ํ๊ฒ ๋ค๋ ํจ์์ด๋ค.
mysqli_connect("localhost", "root", "******", "phpmysql");
ํจ์ ์์๋๋ก hostname๊ณผ userName, password, DATABASE์ด๋ฆ์ ์ ์ผ๋ฉด๋๋ค.(๋น๋ฐ๋ฒํธ๋ ์ ์ถ์ด ๋๋ฉด ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์์ฑํ์ง ์์๋ค.)
mysqli_query()
์ด์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ฝ์
์ ํด๋ณผ ๊ฒ์ด๋ค. ์์ ์ฝ๋๋ฅผ ์ด์ด์ ์์ฑํ ๊ฒ์ด๋ค. ํด๋น ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์
ํ ๊ฒ์ด๋ค. ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
mysqli_query($conn, "
INSERT INTO topic
(title, description, created)
VALUE(
'MySQL',
'MySQL is ..',
NOW()
)
");
php๊ณต์ ์ฌ์ดํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๋ฉด mysqli_query์ ์ฒซ ๋ฒ์ฌ ์ธ์๋ก๋ mysqli์ $mysql์ด ํ์ํ๋ค๊ณ ํ๋ค. ์ด๋ ์ฐ๋ฆฌ๊ฐ ๋ง๋ค์ด๋์ $conn์ ์๋ฏธํ๊ณ ์ดํ $query๋ ์์ฑํ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ์ํ๋ค. ๋ฐ๋ผ MySQL ๋ช ๋ น๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ดํ ์ธ์๋ ์ง๊ธ ์ฐ๋ฆฌ์๊ฒ ํ์ ์๊ธฐ๋๋ฌธ์ ์ฌ์ฉํ์ง ์๋๋ค. ์ด๋ ๊ฒ ์ฝ์ ํ ๋ฐ์ดํฐ๊ฐ ์๋์ง MySQL๋ก ํ์ธํด๋ณด์.
MariaDB [phpmysql]> SELECT * FROM topic;
+----+-------+-------------+---------------------+
| id | title | description | created |
+----+-------+-------------+---------------------+
| 1 | MySQL | MySQL is .. | 2023-10-05 22:29:58 |
+----+-------+-------------+---------------------+
1 row in set (0.001 sec)
์ด๋ ๊ฒ ์ ์์ ์ผ๋ก ์ฝ์ ์ด ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค. ๋๋ฌด ์ ๋์ง ์๋๊ฐ? ์ฐ๋ฆฌ๋ php๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ๋์ด MySQL Server์ connect ์์ฒญ์ ํ๊ณ ํด๋น VALUE๋ฅผ ์์ฑํด์ MySQL monitor๋ก ๊ฐ์ ํ์ธ ํ ์ ์๋ค๋ ๊ฒ์ด ๋ง์ด๋ค. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ๋ง์ฝ ์ฐ๊ฒฐ ๋์ด ์๋ ํด๋น ์นํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ๋ฉด ๋ฌดํํ๊ฒ mysqli_queryํจ์๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์๋ก๊ณ ์นจ์ ํ๋งํผ ๋์ด๋๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํด ๋์.
์ฐธ๊ณ ๋ก ๋ด๊ฐ ์ฐธ๊ณ ํ ์์
์์๋ php๊ฐ MySQL์ ์ ์ํ log๋ฅผ ํ์ธ ํ ์ ์๋๋ฐ ์ด๋ ๊ฒ์์ฐฝ์ "mysql general_log enalbe"์ด๋ผ๊ณ ๊ฒ์ํ๋ฉด ๋์จ๋ค. ๊ฐ์ธ์ด ํ์ํ๋ค๋ฉด ์ถ๊ฐ์ ์ผ๋ก ์์
ํด์ log๋ฅผ ํ์ธํ๋ฉด ์ข์ ๊ฒ๊ฐ๋ค.
์ด๋ ๊ฒ ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์ฒซ๋ง๋จ์ ์์ฃผ ์ ์ฑ์ฌํ๋ค. ์ดํ ์ฐ๋ฆฌ๊ฐ ์ด๋ฐ ๋ง๋จ์ ์ฃผ์ ํ ๋๋ง๋ค ๋ฐ์ํ ์ ์๋ ์๋ฌ๋ค์ ํ์ธ ํ๋ ๋ฐฉ๋ฒ๊ณผ ๋์ฑ create๋ค์ด create๋ฅผ ํด๋ณผ ๊ฒ์ด๋ค.
php htdocs ์์น ๋ณ๊ฒฝ์ด ํ์ํ ์
xampp์ ์ฌ์ฉํ๋ค๋ฉด htdocs ์์น๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค. ์๋ก์ด htdocs2 ๋ผ๋ ํ์ผ์ ์์ฑํ๊ณ xampp ํ๋ก๊ทธ๋จ์์ config๋ฅผ ํตํด์ ์๋ ์ฝ๋์ ๊ฐ์ด ์์ฑํ๋ฉด ๋๋ค.
DocumentRoot "C:\xampp\htdocs2"
<Directory "C:\xampp\htdocs2">
์ด์ฒ๋ผ ํด๋น ๊ฒฝ๋ก๋ฅผ ์ค์ ํด ์ฃผ๋ฉด ๋๋ค. ์ฐธ๊ณ ํ ๋ธ๋ก๊ทธ๋ ์๋ ํ๊ทธ๋ฅผ ํตํด์ ํ์ธํ ์ ์๋ค.
'Server > ๐ฌMySQL&๐PHP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์ํต ์ฐ๊ธฐ์ ์ญ์ (1) | 2023.10.12 |
---|---|
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์ธํ๋ฆฌ ๋ณด์ (0) | 2023.10.09 |
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ๋ง์ ์ฝ๊ธฐ (0) | 2023.10.06 |
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ์์ฑ (0) | 2023.10.06 |
๐ฌMySQL&๐PHP : ๋๊ณ ๋์ ์ฝ๋ผ๋ฆฌ์ ๋ง๋จ (0) | 2023.09.21 |