윈도우2000에서 php로 mssql 접속하기

글내용

윈도우 2000 에서의 PHP 셋팅과 ODBC 로 MS-SQL 사용하는 방법


꼭 필요로 하실 분이 계실것 같아서 이렇게 글을 올립니다.

먼저, 제PC는 윈도우2000 Advance Server 입니다.
반드시 2000서버에서 작업을 하셔만 할 겁니다.

아래의 내용 중 대부분은 팁과 QA 게시판을 뒤져서 제가 테스트 해본 결과물들을 그대로 옮긴 것이니 만큼 그대로 따라만 하시면
반드시 성공하실 수 가 있을 겁니다.

--------------------------------------------------------------------
윈도우 2000 에서 PHP3 활용하는 방법...

1. PHP3 를 구한다. (위치 : http://www.php.net/download-php.php3)
2. PHP3 를 c:/php3 라는 디렉토리에 압축을 해제한다.
3. c:/php3 안의 php3.ini-dist 파일을 php3.ini 파일로 파일명을 변환후에
c:/winnt 디렉토리에 Copy 한다.
4. php3.ini 파일을 열어서 아래와 같이 변경해 준다.

doc_root = c:inetpubwwwroot

위에서 c:inetpubwwwroot 부분은 윈도우 2000 서버에서의 웹서비스
시작위치를 지정해 주면 된다.

지정방법은 시작>프로그램>관리도구>인터넷서비스관리자 를 열어서
기본웹사이트에서 마우스 오른쪽 버튼을 눌러서 등록정보를 연다.
여러개의 탭중에 홈디렉토리 라는 탭을 클릭하면 로컬경로가 나오는데
그 경로명을 doc_root 에 써주면 된다.

5. 윈도우2000 에서 PHP3,PHP,HTML,HTM 에서도 PHP 스크립트가 적용되게 하려면,
홈디렉토리 탭에서 중간의 구성을 클릭한다.

응용프로그램 매핑에서 추가버튼을 누른다.
실행파일 부분에는 c:php3php.exe 를 선택한다.
확장명에는 php3 를 입력하고 확인을 누르고, 같은 방법으로
php,html,htm 을 추가시켜준다.
(저의 경우 html,htm 부분은 삭제를 했습니다. 왜냐하면 ASP 도 함께 개발하기 때문이죠,
만약, html 과 htm 을 같이 추가시킨다면 웹브라우져에 html, htm 문서의 경우 CGI 에러라며 나타나거든요.
php 와 php3 정도만 하는 것이 좋을 것 같습니다.)

6. 서비스가 시작되는 디렉토리(여기서는 c:inetpubwwwroot)에 test.php3 파일을
하나 만든다.
아래와 같이...

phpinfo();
?>

7. MS-SQL 연결을 위한 셋팅을 한다.
c:/winnt 에 있는 php3.ini 파일을 열어서
아래와 같이 수정해 준다.

;Windows Extensions
;extension_dir = c:php3 ; directory in which the loadable extensions (modules) reside
extension=php3_mysql.dll
extension=php3_calendar.dll
;extension=php3_dbase.dll
extension=php3_gd.dll
;extension=php3_dbm.dll
extension=php3_mssql.dll
extension=php3_zlib.dll
;extension=php3_filepro.dll
;extension=php3_imap4r1.dll
;extension=php3_ldap.dll
;extension=php3_crypt.dll
;extension=php3_msql2.dll
;extension=php3_odbc.dll

8. ODBC 를 연결해서 사용하면 된다.


9. ODBC 를 연결해서 사용하는 방법...(간단한 소스입니다.)

$dbhost = "211.11.1.111"; // MS-SQL 의 주소를 쓰시면 됩니다.
$dbuser = "sa"; // MS-SQL DB 접속시 USERID 입니다.
$dbpwd = ""; // MS-SQL DB 접속시 USERPASSWORD 입니다.
$dbname = "MYPAGE"; // MS-SQL 의 ODBC 명을 써주시면 됩니다.

$db_connect = mssql_connect($dbhost,$dbuser,$dbpwd);
$status = mssql_select_db($dbname,$db_connect);

if (!$status) {
$errNO = mssql_errno($db_connect);
$errMSG = mssql_errno($db_connect);

echo("데이타베이스연결에 실패하였읍니다!
");
echo("에러코드 $errNO : $errMSG
");
exit;
}
else{
echo("잘된다.");
$que1 = "select count(*) from daily_twinmoon" ;

$result = mssql_query($que1,$db_connect);
$total = mssql_fetch_array($result);

$mypagetotal = $total[0];

$que2 = "select * from daily_twinmoon" ;
$result = mssql_query($que2,$db_connect);
echo("토탈 ($total) 개 입니다.

");

for($i=0 ; $i< $mypagetotal ; $i++) // start 에서 scale 까지 만
{
if($i<$mypagetotal ) // 전체 자료 개수까지만 출력
{
mssql_data_seek($result,$i);
$row=mssql_fetch_array($result);
echo("$row[0],$row[1],$row[2],$row[3],$row[4],$row[5],$row[6],$row[7],$row[8],$row[9],$row[10]
");
// 위의 부분은 테스트 DB 를 하나 만드셔서 해보시면 될겁니댜.
}
}
}
?>

한번 웹브라우져에 올려보세요...
이정도면 MS-SQL 을 PHP3 로 연결하여 사용하실 수가 있을 겁니다.
아주 간단한 방법이니 꼭 성공하시리라 믿습니다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/01/09 19:06 2004/01/09 19:06
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/33

PHP에서 mssql 사용하기 -절차 및 소스




글내용

--- mssql에 디비생성하기

SQL2000의 관리자(혹은 엔터프라이즈 관리자)를 실행 하시고

데이타 베이스라는 항목이 나옵니다.

마우스 오른쪽 버튼클릭하시고 새 데이타 베이스를 선택하세요

새 데이타 베이스를 선택하면 데이타베이스 속성

Dialog가 나옵니다 여기서 이름을 입력하시고 확인 버튼을 누르세요

여기서 입력하신 이름은 PHP에서 데이타베이스를 선택할때 사용합니다.

------- 계정생성하기 :

SQL2000의 관리자(혹은 엔터프라이즈 관리자)를 실행->보안->로그인 에서 마우스 오른쪽버튼을 누르고 새로그인을 선택하세요

이름, sql인증암호 체크, 인증암호입력, 데이터 베이스 선택 한다.
이름,암호는 후에 PHP에서 데이타베이스에 접속할때 사용됩니다.

데이타베이스는 위에서 만든 데이타베이스를 선택하시면 됩니다.

데이터베이스 액센스 택을 선택하시고 Dialog박스에서
위에서 만든 데이타베이스를 선택하고 public과 db_owner를 선택해주세요

이를 선택해야지 PHP에서 table reset을 할수 있습니다.
db_owner은 자신의 것이라고 알려 주는것입니다.

----- ODBC 설정하기

제어판>관리도구>ODBC 관리자 를 실행하고 시스템 DSN 택을 선택하시고 추가 버튼을 누르시면 새 데이타 원본만들기라는 Dialog가 나옵니다 이때 선택할 드라이버는 SQL Sever입니다.

마침을 누르시고 이름을 입력하고(아무이름이나) 서버는 (local)입니다
이제 다음 을 누르고 나서 사용자가 입력한 로그인ID와 암호를 선택하시고 추가구성옵션에 로그인ID와 암호를 기록합니다.

새 사용자 추가에서 만든 이름과 암호를 입력합니다.

그 밖의 설정들은 디폴트로 해주시면 끝납니다.


-------- MSSQL 서버에 연결하기


$hostname = "localhost";

$username = "name";

$password = "password";

$connection = mssql_connect($hostname,$username,$password)

or die("데이타 베이스에 연결 할수 없습니다.");

print ("데이타 베이스에 연결되었습니다.");

mssql_close($connection);

print ("데이타 베이스의 연결이 해지 되었습니다.");

?>

--------- 데이타 베이스 선택하기


$hostname = "localhost";

$username = "name";

$password = "password";

$connection = mssql_connect($hostname,$username,$password)



or die("데이타 베이스에 연결 할수 없습니다.");

print ("데이타 베이스에 연결되었습니다.
");

if(mssql_select_db(“test”))//test는 위에서만든 데이타베이스 이름.

{

print ("성공
");

}

else

{

print("실패
");

}



mssql_close($connection);

print ("데이타 베이스의 연결이 해지 되었습니다.");



?>


--------Query를 이용하여 데이타 삽입


$hostname = "localhost";

$username = "name";

$password = "password";

$connection = mssql_connect($hostname,$username,$password)



or die("데이타 베이스에 연결 할수 없습니다.");

print ("데이타 베이스에 연결되었습니다.
");



if(mssql_select_db("test"))//test는 데이타베이스 이름.

{

print ("성공
");

}

else

{

print("실패
");

}





//데이타 입력하기.

$no = 0;

$name = "name";

$uptime = date ("Y-m-d");

$topic = "Test";

$text = "냉뮤";

$password = "11";

$query = <<
INSERT INTO bbs VALUES

("$no","$name","$uptime","$topic","$text","$password")

EOD;


mssql_query($query);

//--------------------------------------------------------------------------------------

mssql_close($connection);

print ("데이타 베이스의 연결이 해지 되었습니다.");

?>


-------Query를 이용하여 데이타 업데이트


$hostname = "localhost";

$username = "name";

$password = "password";

$connection = mssql_connect($hostname,$username,$password)



or die("데이타 베이스에 연결 할수 없습니다.");

print ("데이타 베이스에 연결되었습니다.
");



if(mssql_select_db("test"))

{

print ("성공
");

}

else

{

print("실패
");

}

//데이타 UPDATE 하기

$no = 0;

$name = "이름";

$uptime = date ("Y-m-d");

$topic = "Test";

$text = "냉뮤";

$password = "11";

$text = "업데이트 됐어요";

$query = <<
UPDATE bbs SET text = "$text" WHERE no = 0

EOD;

mssql_query($query);

mssql_close($connection);

print ("데이타 베이스의 연결이 해지 되었습니다.");



?>

-------Query를 이용하여 SEARCH VIEW 만들기


$hostname = "localhost";

$username = "name";

$password = "password";

$connection = mssql_connect($hostname,$username,$password)



or die("데이타 베이스에 연결 할수 없습니다.");

print ("데이타 베이스에 연결되었습니다.
");



if(mssql_select_db("test"))

{

print ("성공
");

}

else

{

print("실패
");

}


$no = 0;

$name = "name";

$uptime = date ("Y-m-d");

$topic = "Test";

$text = "하하하하하하하하바보하하하하하하하하하하하하하";

$password = "11";

$search_text = "바보";

$query = <<
INSERT INTO bbs VALUES

("$no","$name","$uptime","$topic","$text","$password")

EOD;

mssql_query($query);



//SEARCH VIEW만들기

$query = <<
CREATE VIEW searchview(no,name,uptime,topic,text,password) AS

SELECT no,name,uptime,topic,text,password FROM bbs WHERE text like "%$search_text%"

EOD;

print("view 가 생성되었습니다");







mssql_query($query);

mssql_close($connection);

print ("데이타 베이스의 연결이 해지 되었습니다.");

$query = <<
DROP VIEW searchview

EOD;

mssql_query($query);

print("View가 삭제 되었습니다");



?>


--------Query를 이용하여 데이타 지우기


$hostname = "localhost";

$username = "name";

$password = "password";

$connection = mssql_connect($hostname,$username,$password)



or die("데이타 베이스에 연결 할수 없습니다.");

print ("데이타 베이스에 연결되었습니다.
");



if(mssql_select_db("test"))

{

print ("성공
");

}

else

{

print("실패
");

}

$no = 0;

$name = "22";

$uptime = date ("Y-m-d");

$topic = "Test";

$text = "냉뮤";

$password = "11";

$query = <<
INSERT INTO bbs

VALUES("$no","$name","$uptime","$topic","$text","$password")

EOD;



mssql_query($query);

print ("INSERT했습니다
");

//DELETE



$query = <<
DELETE bbs WHERE no = 0

EOD;



mssql_query($query);

print("DELETE 했습니다
");

mssql_close($connection);

print ("데이타 베이스의 연결이 해지 되었습니다.");



?>

------Query를 이용하여 테이블 ReSet하기

//ower권한이 있어야 한다.


$hostname = "localhost";

$username = "name";

$password = "password";

$connection = mssql_connect($hostname,$username,$password)



or die("데이타 베이스에 연결 할수 없습니다.");

print ("데이타 베이스에 연결되었습니다.
");



if(mssql_select_db("test"))

{

print ("성공
");

}

else

{

print("실패
");

}

$no = 0;

$name = "name";

$uptime = date ("Y-m-d");

$topic = "Test";

$text = "냉뮤";

$password = "11";

$query = <<
INSERT INTO bbs

VALUES("$no","$name","$uptime","$topic","$text","$password")

EOD;



mssql_query($query);

print ("INSERT했습니다
");

//DELETE



$query = <<
TRUNCATE TABLE bbs;

EOD;



mssql_query($query);

print("TABLE RESET 했습니다
");

mssql_close($connection);

print ("데이타 베이스의 연결이 해지 되었습니다.");



?>
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/01/09 19:05 2004/01/09 19:05
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/32

subject : PHP,MS-SQL 스토어드 프로시져 사용하기 [see: 741]




PHP4.1.0 이상 부터 ms-sql 의 스토어드 프로시져를 PHP에서 사용할 수 있습니다.
물론 데이터베이스를 ms-sql 사용하시는 분만 해당 합니다.

스토어드 프로시져는 다 아시겟죠..ASP 하시면..머..
함수 만들어서 쿼리 1번 날리겟다..이거죠..결론은..머든지 해보면 쉽습니당..

PHP4.1.0 부터 지원된 mssql_bind() 를 사용해서 가능 합니다.
( PHP4.1.0 이전 버전에서는 어케 하는지 모름당 ^^ )

mysql 사용하시는 분들은 해당 사항 없습니다. ^^

http://www.php.net/manual/en/function.mssql-bind.php
http://www.php.net/manual/en/function.mssql-execute.php


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/01/09 18:40 2004/01/09 18:40
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/31

subject : Call to undefined function: mssql_connect() [see: 409]




ms sql 서버 연결 시 오류 일 경우 입니당.
$connection = mssql_connect("$h", "$u", "$p");
mssql_select_db($b);

Fatal error: Call to undefined function: mssql_connect() in ..mssql.php on line 7

대신

mssql_select_db($b,$connection);
하세요.
그래도 안되면 odbc_connect 사용하면 됩니다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/01/09 18:38 2004/01/09 18:38
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/30

연극 배우 박정자

숨을 쉰다고 모두가 살아 있다고 할 수는
없지요. 저는 공연이나 연습이 없는 날이면
무척 우울해요. 거울의 제 모습에서 생명의 흔적이라곤
찾아볼 수가 없어요. 배신을 당한 기분이 그럴까요?
그렇다고 연극을 1년 내내 할 수도 없고
저도 큰일이에요. 저 자신의 비참함을
조금이라도 이기기 위해선 앞으로
더욱 열심히 연극에 매달릴
수밖에 없을 것 같아요.



- 김미도의 《연극 배우 박정자》중에서 -



* 평생을 한가지에 몸바쳐 몰입하여 한 길을 가는
사람들이 있습니다. 그런 사람들은 언젠가 그 분야에서
\'1인자\', \'명인\', \'거장\'이라는 이름이 붙여집니다.
그 명성은 결코 남이 쌓아줄 수 없습니다.
자신의 피나는 노력과 열정, 무서운 끈기와 집중력,
자신이 하는 일에 대한 특별한 애정이 없으면
\'1인자\', \'거장\'의 자리에 오를 수 없습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/01/09 09:08 2004/01/09 09:08
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/547


블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2004/01   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Statistics Graph

Site Stats

Total hits:
188028
Today:
214
Yesterday:
614