[PHP] PHP ํ™˜๊ฒฝ PDO ์‚ฌ์šฉํ•˜๊ธฐ

2025. 11. 25. 16:46ยท๐Ÿ“ƒ ETC
728x90

์•ž์„  ํฌ์ŠคํŒ…์—์„œ PHP๋ฅผ ์„ค์น˜ํ•˜์˜€๋Š”๋ฐ, PHP์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ PDO๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜์—ฌ ๊ฐ€์ด๋“œ ๋ฌธ์„œ๋ฅผ ๋‚จ๊ธด๋‹ค.

 

[PHP] Windows ํ™˜๊ฒฝ์— PHP ์„ค์น˜ํ•˜๊ธฐ

๊ฐ„๋‹จํ•œ ์›น ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด php๋ฅผ ์„ค์น˜ํ•˜์˜€๊ณ , ๊ทธ ๊ณผ์ •์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ๋จผ์ € php ๊ณต์‹ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•œ๋‹ค. PHPPHP is a popular general-purpose scripting language that powers everything from your blog to the most popu

idox.tistory.com

 

PHP์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•

์ด 3๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, PDO๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ทธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

  • mysql_connect() → PHP 7.0์—์„œ ์‚ญ์ œ
  • mysqli_connect()
  • PDO

 

PDO๋ž€?

PDO(PHP Data Objects)๋ž€ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ‘œ์ค€ํ™”์‹œํ‚จ ๊ฒƒ์œผ๋กœ, ๊ธฐ์กด์—๋Š” DB ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅธ API๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด PDO๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ DB์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions. Note that you cannot perform any database functions using the PDO extension by itself; you must use a database-specific PDO driver to access a database server.

PHP ๋ฐ์ดํ„ฐ ๊ฐ์ฒด(PDO) ํ™•์žฅ์€ PHP์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€๋ณ๊ณ  ์ผ๊ด€๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. PDO ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“œ๋ผ์ด๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณ„ ๊ธฐ๋Šฅ์„ ์ผ๋ฐ˜ ํ™•์žฅ ํ•จ์ˆ˜๋กœ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PDO ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋Šฅ์„ ๋‹จ๋…์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณ„ PDO ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
 

PHP: Introduction - Manual

Introduction

www.php.net

 

W3Schools.com

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

์•„๋ฌดํŠผ, ๋‹ค์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์—ฐํ•˜๊ณ  SQL ์ธ์ ์…˜ ๋ฐฉ์–ด๋ฅผ ์œ„ํ•œ Prepared Statements๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋‚˜ API์˜ ์ผ๊ด€์„ฑ ๋“ฑ ๊ธฐ์กด PHP ๊ฐœ๋ฐœ ๋ฐฉ์‹๋ณด๋‹ค ๋‚˜์€ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

 

PDO ์„ค์น˜ ๋ฐฉ๋ฒ•

๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์ด๋ผ๋ฉด ์•„๋ž˜ ๋ช…๋ น์„ ํ†ตํ•ด ์†์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,

sudo apt-get install php-pdo

 

 

์œˆ๋„์šฐ์—์„œ๋Š” PHP ์„ค์น˜ ํด๋” ๋‚ด์˜ php.ini ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ท€์ฐฎ์€ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. ์•„๋ž˜ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ๋‹ค. (์ฃผ์„ ํ•ด์ œ)

extension=pdo_mysql

 

php.ini ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ, ์•„๋ž˜์™€ ๊ฐ™์ด ini ํŒŒ์ผ์˜ ๋ฐฑ์—…๋ณธ(?)์ด ์žˆ์„ํ…๋ฐ ์ด๊ฑธ ๋ณต์‚ฌํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋จ.

php.ini-development > php.ini ํŒŒ์ผ๋กœ ๋ณต์‚ฌ ํ›„ ๋‚ด์šฉ ์ˆ˜์ •

 

 

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

PDO ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด(DSN)๊ณผ ์‚ฌ์šฉ์ž๋ช…, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค.

<?php
try {
    $dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8mb4';
    $username = 'root';
    $password = 'password';
    
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Database connection established successfully.";
} catch (PDOException $e) {
    echo "Database connection failed: " . $e->getMessage();
}
?>

 

PDO ์ฟผ๋ฆฌ ์‹คํ–‰ ๋ฐฉ๋ฒ•

DB ์—ฐ๊ฒฐ ํ›„์—๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑ ๋ฐ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๋Š” users ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ํ™•์žฅํ•˜์—ฌ ๋” ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

<?php
$query = $pdo->query("SELECT * FROM users");
$users = $query->fetchAll(PDO::FETCH_ASSOC);

foreach ($users as $user) {
    echo $user['name'] . "<br>";
}
?>

 

Prepared Statements๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด prepare(), bindParam(), execute() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค.

<?php
$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':email', $email);
$email = 'test@example.com';
$stmt->execute();

$user = $stmt->fetch(PDO::FETCH_ASSOC);
echo $user['name'];
?>
<?php
$sql = "INSERT INTO users (name, email, password) VALUES (:name, :email, :password)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
    ':name' => 'John Doe',
    ':email' => 'john@example.com',
    ':password' => password_hash('secret', PASSWORD_DEFAULT)
]);

echo "New user inserted successfully.";
?>
728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ“ƒ ETC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[PHP] Windows ํ™˜๊ฒฝ์— PHP ์„ค์น˜ํ•˜๊ธฐ  (0) 2025.11.23
[Tools] Windows ํ™˜๊ฒฝ FFmpeg ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ฒ•  (0) 2025.11.12
hELLO ์Šคํ‚จ ์ด๋ฏธ์ง€๊ฐ€ ๋ณธ๋ฌธ ํญ์„ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ฒŒ ์ปค์Šคํ…€ํ•˜๊ธฐ  (0) 2025.03.11
[ENV] PC ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ… ๊ฐ€์ด๋“œ  (0) 2025.03.10
๋ธ”๋กœ๊ทธ 1์ผ์ฐจ, ๊ฐœ๋ฐœ 4๋…„์ฐจ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž์˜ ์ผ๊ธฐ ์‹œ์ž‘  (2) 2022.04.04
'๐Ÿ“ƒ ETC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [PHP] Windows ํ™˜๊ฒฝ์— PHP ์„ค์น˜ํ•˜๊ธฐ
  • [Tools] Windows ํ™˜๊ฒฝ FFmpeg ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ฒ•
  • hELLO ์Šคํ‚จ ์ด๋ฏธ์ง€๊ฐ€ ๋ณธ๋ฌธ ํญ์„ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ฒŒ ์ปค์Šคํ…€ํ•˜๊ธฐ
  • [ENV] PC ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ… ๊ฐ€์ด๋“œ
mxnxeonx
mxnxeonx
"์•„, ์ด๊ฑฐ ๋ญ์˜€๋”๋ผ"๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ์œ„ํ•œ ์ผ๊ธฐ์žฅ.
  • mxnxeonx
    MJ's Development Diary
    mxnxeonx
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (158)
      • ๐Ÿ’ป Language (43)
        • Java : ์ž๋ฐ” (18)
        • Python : ํŒŒ์ด์ฌ (9)
        • ROS : ๋กœ๋ด‡์‹œ์Šคํ…œ (9)
        • Android : ์•ˆ๋“œ๋กœ์ด๋“œ (4)
        • JavaScript : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ (2)
      • ๐ŸŒ Environment (19)
        • IDE : ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ (9)
        • Virtual : ๊ฐ€์ƒํ™˜๊ฒฝ (10)
      • โš™ Framework (12)
        • Vue-๋ทฐ (3)
        • Spring-์Šคํ”„๋ง (7)
      • ๐Ÿ’พ DataBase (18)
      • ๐ŸŒŒ OS (36)
        • Linux-๋ฆฌ๋ˆ…์Šค (36)
      • ๐Ÿ’ฌ CI · CD (7)
        • Git : ๊นƒ (7)
      • ๐Ÿ“ƒ ETC (6)
      • ๐Ÿค– AI (5)
  • ๋งํฌ

    • GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
mxnxeonx
[PHP] PHP ํ™˜๊ฒฝ PDO ์‚ฌ์šฉํ•˜๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”