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

프로시저 사용법좀 알려주십시오

· 11년 전 · 800 · 2
php에서 asp프로시저에 연결하려하는데 도무지 해결이 안됩니다. 

아래는 샘플입니다. 

$key1 xml 형식으로 처리하는 구문입니다. 
$key2 ''처리에 문제가 있나 싶은데 구글링해봐도 잘모르겠네요 

mssql_execute($stmt); 오류가 납니다. 
Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in 


$Key1="N'<ROOT> 
<DataBlock></DataBlock> 
</ROOT>'"; 
$Key2="N''"; 



디비에서 직접 아래와 같이 쿼리를 하면 정상적입니다. 

exec 프로시저명 @Key1=N'<ROOT> 
<DataBlock></DataBlock> 
</ROOT>',@Key2=N'',@Key3=1


아래는 전체 소스입니다.

<?php 
$hostName=""; 
$userName=""; //mssql id 
$password="";//mssql pass 
$dbName="";//mssql db 


$conn=mssql_connect($hostName,$userName,$password); 

if ($conn) { 
    mssql_select_db($dbName,$conn); 
    $stmt=mssql_init("프로시저명",$conn);//프로시저명 
    
   $Key1="N'<ROOT>
<DataBlock1></DataBlock1>
</ROOT>'";
   $Key2="N''";
   $Key3=1;

    mssql_bind($stmt,"@Key1",$Key1,SQLVARCHAR); 
    mssql_bind($stmt,"@Key2",$Key2,SQLVARCHAR); 
    mssql_bind($stmt,"@Key3",$Key3,SQLINT2); 


    
    $result=mssql_execute($stmt); 
    $arr=mssql_fetch_row($result); 

echo"$arr[Key1]"; 
    
    mssql_close($conn); 
}else{echo"연결실패";} 
?> 

댓글 작성

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

로그인하기

댓글 2개

11년 전
우선 phpinfo() 이용하여 mssql 확장되어 있는지 확인 해봐야합니다.
없으면 패치확장하구요 현재 위 방식 보니 php4 혹은 php5 최신 버전 아닌것 같습니다.
php5라면 pdo 추천합니다.
모든 sql 명령어 바뀌지 않은 상태에서 다양한 디비로 쉽께 바꿀수있습니다.
답변 감사합니다.
mssql 확장 확인했습니다.
실 디비에서 데이타를 가져오는것도 처리했구요... 프로시저쪽 접근하는게 에러가 나는상황입니다.
pdo쪽은 안해봤는데 찾아봐야겠네요

게시글 목록

번호 제목
8102
8099
8087
8080
8079
8077
8074
8073
8068
8059
8057
8054
8050
8040
8038
8035
8034
8031
8025
8024
8022
8013
8011
8007
7994