216.73.216.168 TODAY : 3,352

PHP ์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ์ค‘๊ธ‰

๐Ÿ“š PHP ์ค‘๊ธ‰ - 1์ฃผ์ฐจ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ดˆ ๋ฐ MySQL ์—ฐ๋™ (PDO) - 03 PHP Data Objects (PDO)๋ฅผ ์ด์šฉํ•œ DB ์—ฐ๊ฒฐ

๐Ÿ“š PHP ์ค‘๊ธ‰ - 1์ฃผ์ฐจ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ดˆ ๋ฐ MySQL ์—ฐ๋™ (PDO) - 03 PHP Data Objects (PDO)๋ฅผ ์ด์šฉํ•œ DB ์—ฐ๊ฒฐ
ํ‰์  10.0 ๋ผ์ด์„ผ์Šค free
์‚ฌ์šฉ์žํ‰์  10.0 ์šด์˜์ฒด์ œ
๋‹ค์šด๋กœ๋“œ 1 ํŒŒ์ผํฌ๊ธฐ 0
์ œ์ž‘์‚ฌ LUZENSOFT ๋“ฑ๋ก์ผ 2025-07-11 13:15:53
์กฐํšŒ์ˆ˜ 38
- ์„ค๋ช…

๐Ÿ“š PHP ์ค‘๊ธ‰ - 1์ฃผ์ฐจ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ดˆ ๋ฐ MySQL ์—ฐ๋™ (PDO) - 03 PHP Data Objects (PDO)๋ฅผ ์ด์šฉํ•œ DB ์—ฐ๊ฒฐ







์™œ #PDO๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€?


uploadImage


์•ˆ๋…•ํ•˜์„ธ์š”! #PHP ์ค‘๊ธ‰ ๊ณผ์ •์— ๋‹ค์‹œ ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” #SQL์˜ ๊ธฐ๋ณธ์ ์ธ #CRUD ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ๋ฐฐ์› ์ฃ . ์˜ค๋Š˜์€ #PHP์—์„œ #MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— #์•ˆ์ „ํ•˜๊ณ  #ํšจ์œจ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ํ•ต์‹ฌ ๋ฐฉ๋ฒ•์ธ #PDO(PHP Data Objects)์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.



๊ณผ๊ฑฐ PHP์—์„œ๋Š” mysql_connect()๋‚˜ mysqli_connect()์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. mysqli๋Š” mysql ํ•จ์ˆ˜๋ณด๋‹ค๋Š” ๊ฐœ์„ ๋˜์—ˆ์ง€๋งŒ, ์—ฌ์ „ํžˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ข…๋ฅ˜๋ณ„๋กœ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.



PDO๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. PDO๋Š” #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค #์ถ”์ƒํ™” #๊ณ„์ธต(Database Abstraction Layer)์„ ์ œ๊ณตํ•˜์—ฌ, ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜(MySQL, PostgreSQL, SQLite ๋“ฑ)์— ๊ด€๊ณ„์—†์ด ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์ƒ๊ธธ ๋•Œ ์ฝ”๋“œ ์ˆ˜์ •์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ•๋ ฅํ•œ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.



๋ฌด์—‡๋ณด๋‹ค PDO์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ #๋ณด์•ˆ์ž…๋‹ˆ๋‹ค. PDO๋Š” #์ค€๋น„๋œ #๊ตฌ๋ฌธ(Prepared Statements)์„ ์ง€์›ํ•˜์—ฌ #SQL #์ธ์ ์…˜ ๊ณต๊ฒฉ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ฐฉ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์ด๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.





PDO๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ค์ •


uploadImage


PDO๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์€ PDO ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.




1. #DSN (Data Source Name)




DSN์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. PDO๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์ผ์ข…์˜ ์ฃผ์†Œ๋ก์ž…๋‹ˆ๋‹ค.



ํ˜•์‹: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค_๋“œ๋ผ์ด๋ฒ„:ํ˜ธ์ŠคํŠธ=ํ˜ธ์ŠคํŠธ_์ฃผ์†Œ;๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…=DB_์ด๋ฆ„;์บ๋ฆญํ„ฐ์…‹=๋ฌธ์ž์…‹



  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค_๋“œ๋ผ์ด๋ฒ„: ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜๋ฅผ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: mysql, pgsql, sqlite ๋“ฑ)

  • ํ˜ธ์ŠคํŠธ=ํ˜ธ์ŠคํŠธ_์ฃผ์†Œ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋Š” localhost ๋˜๋Š” 127.0.0.1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…=DB_์ด๋ฆ„: ์—ฐ๊ฒฐํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. (์˜ˆ: phplearning)

  • ์บ๋ฆญํ„ฐ์…‹=๋ฌธ์ž์…‹: ๋ฐ์ดํ„ฐ ํ†ต์‹ ์— ์‚ฌ์šฉํ•  ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ธ€ ๋“ฑ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด utf8mb4๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.



์˜ˆ์‹œ:

PHP

$dsn = "mysql:host=localhost;dbname=phplearning;charset=utf8mb4";




2. ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ




๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ํ•ด๋‹น ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.



  • $user: MySQL ์‚ฌ์šฉ์ž ์ด๋ฆ„ (์˜ˆ: root)

  • $pass: MySQL ๋น„๋ฐ€๋ฒˆํ˜ธ (์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ๋นˆ ๋ฌธ์ž์—ด '' ๋˜๋Š” null)




3. ์˜ต์…˜ (Options)




PDO ๊ฐ์ฒด์˜ ๋™์ž‘ ๋ฐฉ์‹์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ • ๊ฐ’๋“ค์ž…๋‹ˆ๋‹ค. ์ด๋“ค์€ ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ PDO ์ƒ์„ฑ์ž์˜ ๋„ค ๋ฒˆ์งธ ์ธ์ž๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.



  • PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION:

    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด #PDOException์„ ๋ฐœ์ƒ์‹œํ‚ค๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์˜ค๋ฅ˜๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด๋„ PHP ๊ฒฝ๊ณ (Warning)๋งŒ ๋ฐœ์ƒํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ณ„์† ์‹คํ–‰๋  ์ˆ˜ ์žˆ์–ด ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค.

  • PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC:

    • #SELECT ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๊ธฐ๋ณธ ํŽ˜์น˜ ๋ชจ๋“œ๋ฅผ #์—ฐ๊ด€ #๋ฐฐ์—ด(Associative Array)๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ์— ์ปฌ๋Ÿผ ์ด๋ฆ„์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ์ข‹์•„์ง‘๋‹ˆ๋‹ค. (์˜ˆ: $row['name'])

  • PDO::ATTR_EMULATE_PREPARES => false:

    • ๋งค์šฐ ์ค‘์š”ํ•œ ์„ค์ •์ž…๋‹ˆ๋‹ค. #๋„ค์ดํ‹ฐ๋ธŒ #์ค€๋น„๋œ #๊ตฌ๋ฌธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ false๋กœ ํ•ด์•ผ #SQL #์ธ์ ์…˜ ๊ณต๊ฒฉ ๋ฐฉ์–ด์— ๋” ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. true๋กœ ์„ค์ •ํ•˜๋ฉด PDO๊ฐ€ SQL ์ฟผ๋ฆฌ๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜์–ด ๋ณด์•ˆ์ƒ ์ทจ์•ฝ์ ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.





์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ฝ”๋“œ


uploadImage


์ด์ „ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ์ „์ฒด PHP ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. #์˜ค๋ฅ˜ #์ฒ˜๋ฆฌ(try-catch ๋ธ”๋ก)๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.



PHP

<?php
$host = '127.0.0.1'; // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ
$db   = 'phplearning'; // ์—ฐ๊ฒฐํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„
$user = 'root'; // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž ์ด๋ฆ„
$pass = 'your_password'; // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋น„๋ฐ€๋ฒˆํ˜ธ (์„ค์ •๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋ณ€๊ฒฝ)
$charset = 'utf8mb4'; // ๋ฌธ์ž ์ธ์ฝ”๋”ฉ

// DSN (Data Source Name) ๊ตฌ์„ฑ
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";

// PDO ์˜ต์…˜ ์„ค์ •
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,      // ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์˜ˆ์™ธ throw
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,          // ๊ธฐ๋ณธ ํŽ˜์น˜ ๋ชจ๋“œ๋ฅผ ์—ฐ๊ด€ ๋ฐฐ์—ด๋กœ ์„ค์ •
    PDO::ATTR_EMULATE_PREPARES   => false,                     // ๋„ค์ดํ‹ฐ๋ธŒ ์ค€๋น„ ๊ตฌ๋ฌธ ์‚ฌ์šฉ (๋ณด์•ˆ/์„ฑ๋Šฅ ํ–ฅ์ƒ)
];

// ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์‹œ๋„
try {
    $pdo = new PDO($dsn, $user, $pass, $options);
    echo "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์„ฑ๊ณต์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!". "<br>";

    // ์—ฌ๊ธฐ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ์ฝ”๋“œ (SELECT, INSERT ๋“ฑ)๋ฅผ ์ž‘์„ฑ
    // ์˜ˆ:
    // $stmt = $pdo->query('SELECT * FROM users');
    // while ($row = $stmt->fetch()) {
    //     echo $row['name'] . "<br>";
    // }

} catch (PDOException $e) {
    // ์—ฐ๊ฒฐ ์‹คํŒจ ์‹œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
    // ์‹ค์ œ ์„œ๋น„์Šค์—์„œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ง์ ‘ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    // ๋Œ€์‹  ์˜ค๋ฅ˜๋ฅผ ๋กœ๊น…ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” "์„œ๋น„์Šค์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค."์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
    throw new PDOException($e->getMessage(), (int)$e->getCode());
}
?>



์œ„ ์ฝ”๋“œ๋ฅผ PHP ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ณ  ์›น ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”. your_password ๋ถ€๋ถ„์€ ์‹ค์ œ MySQL ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋ฐ˜๋“œ์‹œ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋ฉด "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์„ฑ๊ณต์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!" ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.



๋งŒ์•ฝ ์—ฐ๊ฒฐ์— ์‹คํŒจํ•˜๋ฉด PDOException์ด ๋ฐœ์ƒํ•˜๊ณ  ์ž์„ธํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋˜์–ด ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋„์›€์„ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ‹€๋ ธ๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„์ด ์ž˜๋ชป๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.





์ •๋ฆฌ ๋ฐ ๋‹ค์Œ ์ฃผ์ฐจ ์˜ˆ๊ณ 


uploadImage


์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” #PDO๊ฐ€ ์™œ PHP์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์˜ #ํ‘œ์ค€์ด์ž #์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  PDO๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— #์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. DSN ๊ตฌ์„ฑ, ์‚ฌ์šฉ์ž ์ธ์ฆ, ๊ทธ๋ฆฌ๊ณ  ์ค‘์š”ํ•œ ์˜ต์…˜ ์„ค์ •(ATTR_ERRMODE, ATTR_DEFAULT_FETCH_MODE, ATTR_EMULATE_PREPARES)์˜ ์˜๋ฏธ์™€ ์ค‘์š”์„ฑ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.



์ด์ œ ์—ฌ๋Ÿฌ๋ถ„์€ PHP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฌ๊ณ ํ•œ ๊ธฐ๋ฐ˜์„ ๋งˆ๋ จํ–ˆ์Šต๋‹ˆ๋‹ค.