본문 바로가기
프로그램 (PHP,Python)

PHP5의 MySQLi 확장 활용 예제

by 날으는물고기 2009. 7. 3.

PHP5의 MySQLi 확장 활용 예제

PHP5의 놀라운 기능들 중에서 특히 주목해야 할 부분을 꼽으라고 하신다면
저는 주저 없이 MySQLi (MySQL Improved Extension) 을 꼽겠습니다.
(물론 simpleXML 확장도 굉장합니다만... ^^;)


기존 함수들인 mysql_* 형태를 거의 그대로 사용하실 수 있도록 mysqli_* 함수들이 준비되어 있고, PHP5의 클래스 모델을 통해서 사용하실 수 있도록 mysqli::* 형태로도 메소드들을 제공하고 있습니다.

MySQLi 확장은 새로워진 PHP5에 대응하기 위한 MySQL 의 새로운 도전을 담고 있습니다. 물론 업그레이드된 MySQL 5 의 성능을 최대한으로 활용하기 위해서도 드라이버 재작성은 꼭 필요했을 겁니다.

기존의 mysql_* 함수들보다 작게는 2배에서 최고 40배 가까운 굉장히 놀라운 처리 속도를 보여줄 뿐더러, DB에 생성된 테이블 형태에 따라서 트랜잭션 처리를 위한 메소드들(mysqli::commit 등)을 제공하기도 해서 좀 더 고성능의 웹 애플리케이션 개발에 도움을 주고 있습니다.

뭐, 이러쿵 저러쿵 해도 백문이 불여일타, 겠지요? ^^;
아래 간단한 코드를 보시면서 대략적인 작동 흐름을 확인해 보시기 바랍니다.

<?php
header('Content-Type: text/html; charset=utf-8');
// DB에 접속을 합니다. 아래의 예제코드는 OOP 스타일로 했습니다.
// 물론, 기존의 함수 형태 (mysqli_*)로도 사용이 가능합니다. (PHP매뉴얼을 참조해 봅시다!)

$mysqli = new mysqli('localhost', 'root', 'password', 'dbname');

// 접속 실패시 처리
if(mysqli_connect_errno()) {
    // 여기에 접속 실패시 처리 코드 추가
}

// DB접속이 되었다 치고, 일단 테스트용 테이블을 dbname DB에 생성해 보겠습니다.
$mysqli->query("create table just_test ( uid int(11) not null auto_increment,".
    "var varchar(255) not null default '', primary key(uid))");

// dbname DB에 just_test 라는 테이블을 생성했으니, 이제 테스트용으로 데이터를 추가해 봅시다.
$mysqli->query("insert into just_test set uid = '', var = 'This is test code (English)'");
$mysqli->query("insert into just_test set uid = '', var = '이 것은 실험용 코드입니다. (한글)'");

// 데이터를 넣었으니, 이제 뽑아봅시다.
$getData = $mysqli->query("select * from just_test");
while($list = $getData->fetch_array()) {
    echo $list['var'] . ' ('.$list['uid'].') <br />';
}

// 데이터 연결을 해제합니다. (개발자가 명시해도 되고, 안해도 PHP가 알아서 해제해 줍니다.)
$mysqli->close();
?>

위의 코드에서는 OOP 스타일로 코딩을 해보았습니다.
그렇지만 굳이 저렇게 할 필요 없이, 예전처럼 함수 형태로 해서 코드를 작성하셔도 됩니다.
(그렇지만 이왕 PHP5로 넘어가시는 김에, OOP 형태로의 작업을 해보시는 게 좋지 않을까요? ^^;;)

기존에 사용하시던 방식을 거의 그대로 따르기 때문에 사실 이전하는 것 자체는 별도로 신경써야 할 부분은 없습니다.
단지, 기존의 애플리케이션을 다시 MySQLi 확장에 대응하도록 재작성 하는데는 많은 노력이 필요할 것으로 보여집니다. ㅠ.ㅠ;;;
(한 마디로 무궁무진한 삽질의 세계가 기다리고 있습니다.)

PHP5의 시대로 넘어가게 되면서 많은 것들이 달라졌습니다. 이번에 알파 작업중인 PHP5.3 만 하더라도 PHP6에서의 변화를 일부 반영한다고 하니 그 변화의 속도 또한 만만치 않은 것이 사실입니다.

지금의 환경에 안주해서는 안됩니다!
변화에 가속도가 붙는 지금, 진화를 시작해야 합니다.
이미 PHP4 는 4.4.9 를 끝으로 공식적인 업데이트가 마감되었습니다.

출처 : http://sirini.net/blog

728x90

댓글