휴,, 정말 오랜만에 포스팅하는군요.
인천대학교 실습 때문에 MSSQL 서버를 쓰게 되었습니다. 분명 PHP와 연동할 방법이 있을 것 같아서 조사해 본 자료입니다.
먼저, MSSQL의 연동 방법은 MySQL과 같습니다. 함수 이름만 mysql_[...] 에서 mssql_[...]로 바뀐 것 뿐입니다. 하지만 사용 전에 세팅이 필요합니다.
먼저, PHP.ini 파일을 수정해야 합니다. APM Setup 사용자들은 APM 관리자에서 [환경 설정] -> [PHP 환경성절] -> [PHP 확장모듈 설정] 으로 들어가서 'php_mssql.dll'에 체크를 해 주시면 됩니다. APM Setup을 사용하시지 않으시는 분들은 직접 PHP.ini 파일을 열어서 주석으로 처리되어 있는 'extension=php_mssql.dll' 부분의 주석을 해제해주시거나 없는 경우 직접 입력해 주셔야 합니다. 그러면 일단 MSSQL을 사용하실 수 있습니다.

mssql_select_db( DB Name, DB Connection );

mssql_query( Query );

위 함수들이 주로 사용하게 되는 함수들입니다. MySql과 사용법은 같습니다. 자세한 사항은 링크된 Documentation을 참고하시기 바랍니다.
MSSQL에서 가장 까다로운 점은, MySQL과는 달리 여러 사용자를 설정할 수 있다는 것입니다. (MySQL에 다중 사용자 기능이 있는지는 모르겠지만, 저는 사용해 본 적이 없으므로...) 뭐 익숙해진 이 시점에서는 장점이라고 보아야겠지만, 처음 할 때는 매우 헷갈리더군요.
MSSQL은 로그인과 사용자의 개념을 구분합니다. 전체 DB에 로그온하는 것은 '로그인'으로 설정된 유저이며, '사용자'는 각각의 데이터베이스에 접근하는 자격입니다. 또한 사용자는 로그인에 종속적입니다.
무슨 말인고 하니, board라는 데이터베이스가 있다고 합시다. 이 데이터베이스에 접근하기 위해서는 먼저 DB 전체에 로그인을 해야 합니다. 하지만 로그인을 했다 해도 그것만 가지고는 board에 접근할 수 없습니다. 이 로그인이 board에 접근할 수 있는 권한을 주어야 하는데 이것이 '사용자'입니다. '로그인' 자격으로 로그인을 한 후 '사용자'의 자격으로 DB에 접근하는 것입니다. 하나의 로그인은 여러 개의 사용자를 가질 수 있으며, 하나의 사용자는 한 개의 로그인에서만 유효합니다.
최대한 쉽게 풀어보려고 했는데 점점 꼬이네요..;; 어쨌든 그렇습니다.
MSSQL은 기본적으로 sa라는 로그인을 제공합니다. 또한 각 데이터베이스에는 sa의 로그인을 사용하는 dbo라는 사용자가 설정됩니다. 때문에 모든 DB에 접근하기 위해서는 sa로만 로그인하면 됩니다. 하지만 이는 보안상 불리할 수 있기 때문에 용도에 따라 로그인을 몇 개 더 만든 후 사용하는 것이 좋습니다.
기본적으로 MySQL과 MSSQL의 쿼리문은 같습니다. 다만, MySQL의 LIMIT 문을 MSSQL에서는 TOP으로 써야 합니다. 다음은 비교 소스입니다.
보시는 바와 같이 중간에 있는 데이터를 뽑아올 때에는 NOT IN 문을 써야 합니다. 좀 귀찮은 건 사실입니다.
아직 많이 써 보진 않았지만 관리하기에는 MSSQL이 더 편할 것 같아 추후 개발시에는 MSSQL을 이용하려고 합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.






댓글을 달아 주세요
어지럽습니다;; @-@