PHP와 MSSQL의 연동 코드 실례 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

PHP와 MSSQL의 연동 코드 실례 정보

PHP PHP와 MSSQL의 연동 코드 실례

본문


<?php
/**
 * XAMPP 3.2.2 가 설치된것을 가정하고...
 * PHP와 MS SQL Server를 연동하기 위해서는 다음과 같이 하여야 한다.
 *
 * 1. MS SQL Server, MS SQL Server Management Studio를 설치하고 필요한 설정을 해준다.
 * - Management Studio를 이용하여 서버에 기정값을 가지고 로그인한다.
 * - 왼쪽리스트현시부의 제일 상위루트에서 마우스오른버튼을 클릭하여 properties에 들어간다.
 * - 현시된 server properties 창에서 security항목에 들어간다.
 * - server authentication mode에서 SQL server and Windwos Authentication mode를 선택해준다.
 * - Ok버튼을 클릭 server properties 창을 닫는다.
 * - 왼쪽리스트현시부의 Security/Logins에서 마우스오른쪽버튼를 누르고 New Login...을 선택한다.
 * - 새 로그인계정을 창조하는 창이 뜨는데 Login Name을 먼저 입력해주고 SQL Server authentication을 지정해주며 필요한 암호를 설정해준다.
 * - 계속하여 왼쪽에 있는 Server Roles라는 항목에 접근하여 새 계정의 roles에 sysadmin을 추가해준다.
 *
 * - Sql Server Configuration Manager를 기동하고 TCP/IP접근항목을 Enable시켜 remote접근을 허락해주어야 한다.
 * - 마지막으로  SQL Server Service를 재기동한다.
 * - Navicate같은 자료기지관리도구로 DB접속이 제대로 되는가를 확인한다.
 *
 * 2. PHP와 MS SQL Server를 련동하기 위한 PHP 플러그인 SQLSRV52.EXE을 설치한다.
 * 이때 [XAMPP가 설치된 등록부]/php/ext/안에 플러그인들이 생성되도록 경로를 지정해주어야 한다.  
 *
 * 3. [XAMPP가 설치된 등록부]/php/php.ini파일을 열어서 ; Dynamic Extensions ; 항목을 찾아 필요한 플러그인을 활성화한다.
 * PHP7.0판본이라면 해당 플러그인의 파일명은 php_pdo_sqlsrv_7_ts_x86.dll 형식이다.
 * 실례: extension=php_pdo_sqlsrv_7_ts_x86.dll
 *
 * 4. MS SQL Server를 구동하기 위한 ODBC플러그인을 설치한다. msodbcsql.msi
 *
 * 5. XAMPP서비스를 재기동한다.
 */
 
/**
 * dbo.sql참고!!
 * MS SQL Server 에 testdb라는 자료기지와 users라는 테블이 존재한다고 할때
 * users테이블은 id, user_id, user_name이라는 3개의 마당으로 이루어졌다고 가정한다.
 * id: PK, AI, int
 * user_id: unique, varchar
 * user_name: varchar
 */
 
/* Connect to a MS SQL database using driver invocation */
$PDO_SQLSRV_DSN = 'sqlsrv:Server=localhost;Database=testdb'; // 자료기지명 testdb로 지정
$user = 'jjb'; // 자료기지접속자명지정
$password = 'jjb'; // 자료기지접속암호지정
 
try {
    $dbh = new PDO($PDO_SQLSRV_DSN, $user, $password); // MSSQLSERVER에 접속!
   
    /**
     * 여러개행 결과값 가져오기
     *
     */
    $sql = "SELECT * FROM users WHERE id > ?";
    $id = 1;
    $sth = $dbh->prepare($sql);
    $sth->execute(array($id));
    $result = $sth->fetchAll(PDO::FETCH_ASSOC);
    //print_r($result);
    for($i=0; $i<sizeof($result); $i++) {
        echo "id: ".$result[$i]['id']."    ";
        echo "user_id: ".$result[$i]['user_id']."    ";
        echo "user_name: ".$result[$i]['user_name']."    ";
        echo "<br>";
    }
   
    /**
     * 한개행 결과값 가져오기
     *
     */
    $sql = "SELECT MAX(id) AS max_id FROM users";
    $sth = $dbh->prepare($sql);
    $sth->execute();
    $result = $sth->fetch(PDO::FETCH_ASSOC);
    //print_r($result);
    $max_id = $result['max_id'];
    echo "등록된 id의 최대값: ".$max_id;
   
   
    /**
     * 테이블에 자료넣기
     *
     */
    $sql = "INSERT INTO users(id, user_id, user_name) VALUES(?,?,?)";
    $new_id = $max_id + 1;
    $sth = $dbh->prepare($sql);
    $sth->execute(array($new_id, 'user'.$new_id, 'name'.$new_id));
   
    /**
     * 자료업데이트하기
     *
     */
    $sql = "UPDATE users SET user_name=? WHERE user_name=?";
    $sth = $dbh->prepare($sql);
    $sth->execute(array('newUserName'.$new_id, 'name'.$new_id));
   
    /**
     * 자료삭제하기
     *
     */
    $sql = "DELETE users WHERE user_name=?";
    $sth = $dbh->prepare($sql);
    $sth->execute(array('name'.$new_id));
   
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
 
?>
추천
1

댓글 1개

전체 5,352
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT