๋ฐ๊ฒฌ๋ ์ค๋ฅ
๊ธฐ์กด์ ํ์ด์ง๋ฅผ ์ ์ํ ๋, ์
๋ ฅ์ ๋ํ์ฌ 'ํ๊ธ' ์ธ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ '์์ด' ์
๋ ฅ๋ง ์๊ฐํ๊ณ ์ ์
์คํฐ๋ ๋ฉค๋ฒ ์ค, ํ๊ธ ์
๋ ฅ ์๋จ, ํ๊ธ ๊นจ์ง ํ์ ๋ฑ์ด ๋ฐ์ ํ์๋ค๋ ์ด์ผ๊ธฐ๊ฐ ๋์ด
ํ๊ธ์ ์ถ๊ฐ๋ก ํ
์คํธ

- ํ๊ธ์ phpmyadmin ์์ score_table์ ์ถ๊ฐ๋ก ์ฝ์

- db ๋ด๋ถ์์ SQL query
- ( SELECT * FROM `score_table` WHERE name = '์ด์ค์ฝ' ) ์ผ๋ก ์ง์ ๊ฒฐ๊ณผ

- ์์ ๊ฐ์ด ์ ์ฐพ์์ ํ์ธํ ์ ์์์
๊ทธ๋ฌ๋ ์ฌ๊ธฐ์ ์ค๋ฅ ๋ฐ์ !!

- DB์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํจ์๋ ๋ถ๊ตฌํ๊ณ ํด๋น ์ ๋ณด๊ฐ ์์์ ์ถ๋ ฅ
- ์ ๋ณด๊ฐ ์์์ ์ถ๋ ฅํ๋ ๊ฒฝ์ฐ
score.php
$sql = "select * from score_table where name='{$_GET['student']}'";
$result = mysqli_query($db_conn, $sql);
$row = mysqli_fetch_array($result);
$student_name = $row['name'];
$student_score = $row['score'];
if(isset($student_name)){
echo "<font size = 6>" ."$student_name ํ์์ ์ ์๋ $student_score ์
๋๋ค." ."</font>";
}else{
if(isset($_GET['student'])){
echo "<font size = 6>" ."{$_GET['student']} ํ์์ ์ ๋ณด๋ ์์ต๋๋ค." ."</font>";
}
}
- $student_name ์ $_GET['student'] ๊ณผ ์ผ์นํ๋ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ
- BUT, DB์๋ ํด๋น ์ด๋ฆ์ด ์กด์ฌ.
- ์ฆ, ํ๊ธ์ ์ ๋๋ก ๋ฐ์๋ค์ด์ง ๋ชปํ๋ค๋ ๊ฒ.
์์๋๋ ์ค๋ฅ์ ์์ธ
- ํ๊ธ์ ๊ฒฝ์ฐ utf-8 ํน์ euc-kr๋ก๋ง ์ธ์ ๊ฐ๋ฅ
- ์ธ์ฝ๋ฉ์ด ์ ๋๋ก ๋์ง ์์๋ค๊ณ ๋ณผ ์ ์์
ํ๊ธ ์ธ์ฝ๋ฉ ์ค๋ฅ๋ก ์ธํด ๋ฐ์ํ๋ ๋ฌธ์
- SELECT ์ ํ๊ธ์ด ์ ๋๋ก ์ ๋ ฅ๋์ง ์๋ ๊ฒฝ์ฐ
- INSERT ์ ํ๊ธ์ด ๊นจ์ ธ์ ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ

์๋ํด๋ณธ ํด๊ฒฐ ๋ฐฉ์๋ค
- <head> ์์ utf-8๋ก ์ค์
- <meta charset="utf-8">
- ๊ธธ๊ฒ ์ฐ๋ฉด <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <?php ?> ์์ header("Content-Type:text/html;charset=utf-8"); ์ถ๊ฐ
- form ๋ฉ์๋์ utf-8 ์ถ๊ฐ
- <form method="post" action=" " accept-charset="utf-8">
- php ์์ db ์ฐ๊ฒฐ ์งํ์ ๋ค์ ์ฟผ๋ฆฌ ์คํ
- set names utf8;
- ํด๋น ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐ์ด ์๋๋ ๊ฒฝ์ฐ(ํ๊ธ์ด ์ฌ์ ํ ๊นจ์ง๋ค๋ฉด) ๋ค์ ์ฟผ๋ฆฌ ์คํ
- set session character_set_connection = utf8;
- set session character_set_results = utf8;
- set session character_set_client = utf8;
/etc/mysql/my.cnf ํ์ผ ์์ - my.cnf ํ์ผ์ ์ฐพ์ ์ ์์์- [mysqld] ๊ตฌ๋ฌธ ์๋์ชฝ์ ์ธ์ฝ๋ฉ ์ค์ ์ ์ถ๊ฐ
- collation-server = utf8_unicode_ci
- default-character-set = utf8
- character-set-server = utf8
- init_connect = set collation_connection = utf8_unicode_ci
- init_connect = set names utf8
- [mysqld] ๊ตฌ๋ฌธ ์๋์ชฝ์ ์ธ์ฝ๋ฉ ์ค์ ์ ์ถ๊ฐ
- /etc/php/8.1/cli/php.ini ํ์ผ ์์
- default_charset = "EUC-KR" ๋ก ์์
- mysqli_query ๋ก utf-8 ์ค์
- mysqli_query($conn, "set session character_set_connection=utf8;");
- mysqli_query($conn, "set session character_set_results=utf8;");
- mysqli_query($conn, "set session character_set_client=utf8;");
- etc... ์์ ๊ฐ์ ์ฌ๋ฌ๊ฐ์ง๋ฅผ ์๋ ํ์์ผ๋ ๋ชจ๋ ์ ๋๋ก ๋์ํ์ง ์์
- INSERT ์ ๊นจ์ง ํ์์ ๋ํด์๋ ์์ ๋ฐฉ๋ฒ๋ค ์ค ํด๊ฒฐ ๋ ์ ์์
- ํ์ง๋ง, ๋ฐ์ํ ๋ฌธ์ ๊ฐ SELECT ์ ์ธ์ฝ๋ฉ ๋ฌธ์ ์๊ธฐ ๋๋ฌธ์ ์์ ๋ฐฉ๋ฒ๋ก๋ ํด๊ฒฐ์ด ์๋์์
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ๊ฒฐ๊ตญ ์ฐพ์์ ์ฑ๊ณตํ ๋จ ํ์ค์ ์ฝ๋.
- ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ์์ ์๋ ์์ผ๋ ์ด ์ฝ๋๋ก ํด๊ฒฐ์ด ๋์์
db_connection.php
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', '*****');
define('DB_PASSWORD', '***********');
define('DB_NAME', 'score');
$db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
//echo $db_conn ->character_set_name(); # latin1
$db_conn -> set_charset("utf8");
//echo $db_conn ->character_set_name(); # utf8
?>
- $db_conn -> set_charset("utf8");
- ( -> ) ํ์ดํ์ฐ์ฐ์
- ๊นจ๋ฌ์ ์ฌ์ค, ์ฐ์ ์ ํด์ผํ ๋ฐฉํฅ์ฑ
- ๋ฌดํฑ๋๊ณ ์ด๊ฒ์ ๊ฒ ๋์
ํด๋ณด๋ ๊ฒ์ด ์๋๊ณ ์ฐ์ ์ด๋ค ํํ๋ก ์ธ์ฝ๋ฉ ๋์ด์๋์ง ์ฐ์ ํ์ธํด์ผ ํจ
- echo $db_conn ->character_set_name(); ๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฝ๋ฉ ํ์์ ํ์ธ ๊ฐ๋ฅ
- ์ฐ์ ์๋ ๋ค์ด๊ฐ๋ ํ์์ ํ์ธํ ๊ฒฐ๊ณผ Latin1 ์ผ๋ก ๋ค์ด๊ฐ๋ ๊ฒ์ ํ์ธ
- mysql์ charater set ๊ธฐ๋ณธ ์ค์ , encoding ์ด๊ธฐ๊ฐ์ด latin1์ผ๋ก ์ค์ ๋์ด ์๋ค๊ณ ํจ
- ์์ ์ธ์ฝ๋ฉ ํ์์ด utf-8์ด ์๋์๊ธฐ ๋๋ฌธ์ ํ๊ธ์ด ์ ๋๋ก ๋์ํ์ง ์์ ๊ฒ !!
- $db_conn -> set_charset("utf8"); ์ ์ด์ฉํ์ฌ utf-8๋ก ๋ณํํ ๊ฒฐ๊ณผ
- utf8๋ก ๋ฐ๋ ๊ฒ์ ํ์ธํ ์ ์์์
- ์ฐ์ ์๋ ๋ค์ด๊ฐ๋ ํ์์ ํ์ธํ ๊ฒฐ๊ณผ Latin1 ์ผ๋ก ๋ค์ด๊ฐ๋ ๊ฒ์ ํ์ธ
- echo $db_conn ->character_set_name(); ๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฝ๋ฉ ํ์์ ํ์ธ ๊ฐ๋ฅ
- ๋ฌดํฑ๋๊ณ ์ด๊ฒ์ ๊ฒ ๋์
ํด๋ณด๋ ๊ฒ์ด ์๋๊ณ ์ฐ์ ์ด๋ค ํํ๋ก ์ธ์ฝ๋ฉ ๋์ด์๋์ง ์ฐ์ ํ์ธํด์ผ ํจ
์์ ๋ณธ ๊ฒฐ๊ณผ

- ์ ๋๋ก DB์ ๋ด์ฉ์ ๋ฐ์์ค๋ ๊ฒ์ ๋ณผ ์ ์์์
ํ๊ธฐ
๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ ๋ ๋ฌดํฑ๋๊ณ ์ฐพ๋๋ค๊ณ ํด๊ฒฐ๋๋ ๊ฒ์ด ์๋์ ๋ค์๊ธ ๊นจ๋ฌ์.
์ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด, ์ด๋ค ๋ฌธ์ ์ธ์ง, ๋ฌด์์ด ๋ฌธ์ ์ธ์ง ๋ฑ์ ์ฐพ์๋ด๋ ๊ฒ์ด ์ค์.
๋ํ ์ธ์ฝ๋ฉ ๋ฌธ์ ์ ๊ฐ์ด ์ด๋ค ํ์์ธ์ง ํ์ธ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ค์์์ ๊ฐ์ด ์ฐ์ ํ์ฌ ์ํฉ ํ์ ์ด ์ค์.
Reference
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์