테스트 사이트 - 개발 중인 베타 버전입니다

PHP와 MSSQL의 연동 코드 실례

[code]

<?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']."&nbsp;&nbsp;&nbsp;&nbsp;";

        echo "user_id: ".$result[$i]['user_id']."&nbsp;&nbsp;&nbsp;&nbsp;";

        echo "user_name: ".$result[$i]['user_name']."&nbsp;&nbsp;&nbsp;&nbsp;";

        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();

}

 

?>

[/code]

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

sir에 불법사이트 만들던 조선족이 등장했다면서요?

게시판 목록

개발자팁

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