mssql 프로시저 연결하는데 도움 좀 부탁드립니다. 정보
mssql 프로시저 연결하는데 도움 좀 부탁드립니다.본문
즐거운 연휴 편안히들 쉬고 계시는지요 ^^
다름이 아니라 mssql 프로시저 연결을 할려고 하는데 처음 해 보는거라 염치불구하고 선배님들께 도움 좀 부탁드릴려고 합니다.
제가 한건 아래와 같습니다.
1. 로컬에 apmsetup7 (apache, php5, mysql5)를 설치했구요.
2. php.ini 에서 extension=php_mssql.dll (;) 주석은 없애고 접속은 성공했습니다. (접속 후 쿼리를 날려서 mssql 테이블에 입력, 출력까지 되는걸 확인 했습니다)
3. insert 쿼리는 다음과 같이 넣어서 테스트 했습니다.
$in_sql="insert into $dbName (Key1, Key2) values('1', '입력테스트중입니다')";
mssql_query($in_sql) or die(mssql_error());
4. 이렇게 해서 총 6개를 테스트로 입력 해 뒀습니다.
여기서 끝인줄 알았는데 프로시저를 사용해달라고 하는군요 ^^;;
그래서 프로시저라는걸 급히 검색해보고 안되는 실력으로 레프런스를 뒤져서 찾았습니다.
물론 이곳 게시판에도 찾아봤지만 한없이 부족한 제가 이해할만한 글이 없어서 질문 올리는 거니 부디 넓은 아량으로 도움 좀 부탁드립니다 ^^;
아래는 제가 시도한 소스입니다.
<?php
$hostName="111.222.333.444";
$userName="uName"; //mssql id
$password="p1234";//mssql pass
$dbName="test_db";//mssql db
$conn=mssql_connect($hostName,$userName,$password);
if ($conn) {
mssql_select_db($dbName,$conn);
$stmt=mssql_init("sp_test",$conn);//프로시저명
mssql_bind($stmt,"@Key1",$Key1,SQLINT2);
mssql_bind($stmt,"@Key2",$Key2,SQLVARCHAR);
$result=mssql_execute($stmt);
$arr=mssql_fetch_row($result);
echo"$arr[Key1] / $arr[Key2] / $conn";
mssql_close($conn);
}else{echo"연결실패";}
?>
이렇게 하니 다음과 같은 에러메세지가 나옵니다.
Warning: mssql_execute() [function.mssql-execute]: message: 프로시저 또는 함수 sp_test에 너무 많은 인수가 지정되었습니다. (severity 16) in C:\APM_Setup\htdocs\dd.php on line 17
Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in C:\APM_Setup\htdocs\dd.php on line 17
Warning: mssql_fetch_row(): supplied argument is not a valid MS SQL-result resource in C:\APM_Setup\htdocs\dd.php on line 18
/ / Resource id #2
제가 할려고 하는건 테스트로 입력한 6개(총12개의 값) 모두 또는 하나의 로우에 있는 Key1 과 Key2를 출력 테스트 하려고 하고 있습니다.
한없이 부족한 실력이라 어디가 잘못됐는지 조차 못찾고 있네요..
도움 좀 부탁드립니다.
다름이 아니라 mssql 프로시저 연결을 할려고 하는데 처음 해 보는거라 염치불구하고 선배님들께 도움 좀 부탁드릴려고 합니다.
제가 한건 아래와 같습니다.
1. 로컬에 apmsetup7 (apache, php5, mysql5)를 설치했구요.
2. php.ini 에서 extension=php_mssql.dll (;) 주석은 없애고 접속은 성공했습니다. (접속 후 쿼리를 날려서 mssql 테이블에 입력, 출력까지 되는걸 확인 했습니다)
3. insert 쿼리는 다음과 같이 넣어서 테스트 했습니다.
$in_sql="insert into $dbName (Key1, Key2) values('1', '입력테스트중입니다')";
mssql_query($in_sql) or die(mssql_error());
4. 이렇게 해서 총 6개를 테스트로 입력 해 뒀습니다.
여기서 끝인줄 알았는데 프로시저를 사용해달라고 하는군요 ^^;;
그래서 프로시저라는걸 급히 검색해보고 안되는 실력으로 레프런스를 뒤져서 찾았습니다.
물론 이곳 게시판에도 찾아봤지만 한없이 부족한 제가 이해할만한 글이 없어서 질문 올리는 거니 부디 넓은 아량으로 도움 좀 부탁드립니다 ^^;
아래는 제가 시도한 소스입니다.
<?php
$hostName="111.222.333.444";
$userName="uName"; //mssql id
$password="p1234";//mssql pass
$dbName="test_db";//mssql db
$conn=mssql_connect($hostName,$userName,$password);
if ($conn) {
mssql_select_db($dbName,$conn);
$stmt=mssql_init("sp_test",$conn);//프로시저명
mssql_bind($stmt,"@Key1",$Key1,SQLINT2);
mssql_bind($stmt,"@Key2",$Key2,SQLVARCHAR);
$result=mssql_execute($stmt);
$arr=mssql_fetch_row($result);
echo"$arr[Key1] / $arr[Key2] / $conn";
mssql_close($conn);
}else{echo"연결실패";}
?>
이렇게 하니 다음과 같은 에러메세지가 나옵니다.
Warning: mssql_execute() [function.mssql-execute]: message: 프로시저 또는 함수 sp_test에 너무 많은 인수가 지정되었습니다. (severity 16) in C:\APM_Setup\htdocs\dd.php on line 17
Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in C:\APM_Setup\htdocs\dd.php on line 17
Warning: mssql_fetch_row(): supplied argument is not a valid MS SQL-result resource in C:\APM_Setup\htdocs\dd.php on line 18
/ / Resource id #2
제가 할려고 하는건 테스트로 입력한 6개(총12개의 값) 모두 또는 하나의 로우에 있는 Key1 과 Key2를 출력 테스트 하려고 하고 있습니다.
한없이 부족한 실력이라 어디가 잘못됐는지 조차 못찾고 있네요..
도움 좀 부탁드립니다.
추천
0
0
댓글 3개

mssql 개발자에게 sp_test 프로시져 정의좀 알려달라고 하시면 되요
넵.. 고맙습니다. 일단 연락해봐야겠네요
즐거운 한주되세요~ ^^
즐거운 한주되세요~ ^^
에러내용만으로는 프로시져 입력파라미터 갯수가 틀려서인것같네요.
저도 저런실수를 할까봐 프로시저 생성후에 직집 디미에서 실행해보고 성공한문장을 소스단에 주석으로 넣고있습니다
저도 저런실수를 할까봐 프로시저 생성후에 직집 디미에서 실행해보고 성공한문장을 소스단에 주석으로 넣고있습니다