스토어 프로 시저를 실행하는 PHP 스크립트가 있습니다. 여태까지는 그런대로 잘됐다. 나는 PHP와 SP를 호출 할 경우PHP 스토어 프로 시저의 Mssql 다중 쿼리
EXEC ('Delete From [DB].dbo.[Table]')
EXEC ('INSERT INTO [DB].dbo.[Table] ([Col])VALUES(1)')
, 그것은 단지 테이블의 내용을 삭제하고 첫 번째 행을 삽입하지 않습니다 지금은 저장 프로 시저 내에서 두 개의 쿼리를 실행 매장 절차가 있습니다.
$stmt = sqlsrv_query($connection, "EXEC my_sp");
...
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
...
}
반환 순간에 나에게 중요하지 않습니다 : 나는 다음과 같이 PHP의 SP를 호출 (첫 번째 Exec에서 실행됩니다 것처럼 보였다). 왜 첫 번째 쿼리 만 실행되는지 궁금합니다. 데이터베이스에서 SP를 직접 호출하면 쿼리가 예상대로 실행됩니다. 오류 메시지 또는 이와 유사한 오류 메시지가 없습니다. 아무도 내가 "execs"하나의 PHP 호출로 SP를 실행할 수있는 방법을 알고 있습니까?
도움에 감사드립니다! V
이봐, 감사합니다.이 경우에는 가능할 수도 있습니다. 나는 exec를 사용하여 테이블과 열을 매개 변수로 정의합니다. 두 개의 EXEC가 필요한 경우가 있습니다. EXEC는 query-string-length의 제한을 가지고 있기 때문에 하나 이상이 필요합니다. 하나의 PHP 호출로 저장 프로 시저에서 두 개의 EXEC를 호출 할 수 있습니까? –
변수로 테이블 이름을 전달하려는 경우에도 EXEC가 필요 없다고 생각합니다. 직접 쿼리를 작성하십시오. –
어떻게 작동 할 수 없어 ... 나는 이런 식으로 저장 프로 시저가 : CREATE PROCEDURE [bla] @ 테이블 이름 nvarchar (50) AS DELETE * FROM [@ 테이블 이름] 이것은 delete-query를 사용하여 변수를 concatenate하고 EXEC 쿼리를 실행하면 ... EXEC에서 실행할 수있는이 문자열은 limitted입니다. 그래서 EXEC를 여러 개 사용하지만 설명 된 문제가 있습니다. –