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

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

· 11년 전 · 805 · 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쪽은 안해봤는데 찾아봐야겠네요

게시글 목록

번호 제목
19528
6810
6807
6801
6798
6791
24615
24612
6788
30933
6784
6783
27834
19527
19526
19524
19521
6777
6770
19519
27823
6766
24604
6760
6757
30925
19518
30924
30923
6746
19516
30922
19515
30921
6732
27803
19508
19507
24599
19504
19501
19498
19497
19496
19495
19493
19492
19491
19490
19489
6721
6720
19488
19487
19486
19485
30919
19484
30913
30910
19483
19482
19478
30908
19477
31683
19475
19473
19471
19470
19469
19468
19467
19466
19464
19462
19461
19460
19459
31680
19458
19457
31676
31674
31671
31670
31669
31664
31663
31662
31658
31657
19456
19455
31655
31653
31649
31646
27800
19454