์ตœ๊ณ ์˜ PHP PDO ํŠœํ† ๋ฆฌ์–ผ 2024๋…„, ์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” PDO ์„ค์น˜,๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PHP PDO

PHP ๋ฐ์ดํ„ฐ (PDO) ํ™•์žฅ ๊ฒฝ๋Ÿ‰, ์ผ๊ด€๋œ ์ธํ„ฐํŽ˜์ด์Šค PHP ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ์ •์˜ ๊ฐ์ฒด.

PDO ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜, ๊ฐ™์€ ํ•จ์ˆ˜ (๋ฐฉ๋ฒ•)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ๊ฒ€์ƒ‰ ํ•  ์ˆ˜์—†์ด ๊ฒƒ์„ ์˜๋ฏธ์—†๋Š” ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ์ถ”์ƒํ™” ๊ณ„์ธต์„ ์ œ๊ณตํ•œ๋‹ค.

PHP5.0์—์„œ ๋ฐœํ–‰ PHP5.1์ด PECL ํ™•์žฅ๋„ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋‹ค๊ณผ PDO, ๋‹น์‹ ์€ PHP์˜ ์ด์ „ ๋ฒ„์ „์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.


PDO ์„ค์น˜

๋‹น์‹ ์€ PDO ํ™•์žฅ์ด ์„ค์น˜๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ PHP์˜ phpinfo๋ฅผ () ํ•จ์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜์žˆ๋Š”.

์œ ๋‹‰์Šค ์‹œ์Šคํ…œ PDO์— ์„ค์น˜

์œ ๋‹‰์Šค ๋‚˜ ๋ฆฌ๋ˆ…์Šค์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™•์žฅ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค :

extension=pdo.so

Windows ์‚ฌ์šฉ์ž

PDO ๋‹จ์ˆœํžˆ php.ini ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๊ณ  ๋‹ค์Œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด, PHP์™€ ํ•จ๊ป˜ ๋ฆด๋ฆฌ์Šค ๊ณต์œ  ํ™•์žฅ ๋“ฑ ๋ชจ๋“  ์ฃผ์š” ๋“œ๋ผ์ด๋ฒ„ :

extension=php_pdo.dll
๋˜ํ•œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค :
;extension=php_pdo_firebird.dll
;extension=php_pdo_informix.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll

์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ์„ ์„ค์ • ํ•œ ํ›„, ์šฐ๋ฆฌ๋Š” PHP ๋˜๋Š” ์›น ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋“ค์˜ ๊ตฌ์ฒด์ ์ธ ์˜ˆ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ, ๋‹ค์Œ ์˜ˆ์ œ๋Š” MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” PDO๋ฅผ ์‚ฌ์šฉ :

<?php
$dbms='mysql';     //ๆ•ฐๆฎๅบ“็ฑปๅž‹
$host='localhost'; //ๆ•ฐๆฎๅบ“ไธปๆœบๅ
$dbName='test';    //ไฝฟ็”จ็š„ๆ•ฐๆฎๅบ“
$user='root';      //ๆ•ฐๆฎๅบ“่ฟžๆŽฅ็”จๆˆทๅ
$pass='';          //ๅฏนๅบ”็š„ๅฏ†็ 
$dsn="$dbms:host=$host;dbname=$dbName";


try {
    $dbh = new PDO($dsn, $user, $pass); //ๅˆๅง‹ๅŒ–ไธ€ไธชPDOๅฏน่ฑก
    echo "่ฟžๆŽฅๆˆๅŠŸ<br/>";
    /*ไฝ ่ฟ˜ๅฏไปฅ่ฟ›่กŒไธ€ๆฌกๆœ็ดขๆ“ไฝœ
    foreach ($dbh->query('SELECT * from FOO') as $row) {
        print_r($row); //ไฝ ๅฏไปฅ็”จ echo($GLOBAL); ๆฅ็œ‹ๅˆฐ่ฟ™ไบ›ๅ€ผ
    }
    */
    $dbh = null;
} catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>");
}
//้ป˜่ฎค่ฟ™ไธชไธๆ˜ฏ้•ฟ่ฟžๆŽฅ๏ผŒๅฆ‚ๆžœ้œ€่ฆๆ•ฐๆฎๅบ“้•ฟ่ฟžๆŽฅ๏ผŒ้œ€่ฆๆœ€ๅŽๅŠ ไธ€ไธชๅ‚ๆ•ฐ๏ผšarray(PDO::ATTR_PERSISTENT => true) ๅ˜ๆˆ่ฟ™ๆ ท๏ผš
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));

?>

์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์ง€์ •ํ•˜๋Š” ํŠน์ • PHP์˜ PDO๋ฅผ ์‚ดํŽด ๋ณด์ž :

PHP PDO
10/30