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

PHP와 MSSQL의 연동 코드 실례

· 2년 전 · 2133 · 1

[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개

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

게시글 목록

번호 제목
18200
18195
18193
18181
18179
18173
18170
18164
18158
18155
18152
18151
18150
18140
18139
18138
18131
18130
18120
18119
18118
18117
18116
18111
18110
18108
18107
18106
18100
18090