2014-03-19 3 views
1

내 배열의 각 요소에 대해 mssql 저장 프로 시저를 실행해야하는데 어떻게해야합니까? 여기에 예제가 있지만 한 번만 실행됩니다. DB를 추측하는 Im은 처음 실행되는 동안 잠겨 있기 때문에 한 번만 실행됩니다.PHP For Each에서 Mssql 저장 프로 시저 실행

재귀 함수를 사용해야합니까? 출력이 TRUE 일 경우에만 프로 시저를 실행하십시오. ??

여기 내 코드입니다 :

function executeStoreProcedure($movementsArray = array(), $mssql_link) { 

    $output; 
    $retval; 

    $spName = "SDNuevaOperacion"; 

    var_dump($movementsArray); 

    foreach($movementsArray as $movement) { 

     $statement = mssql_init("SDNuevaOperacion", $mssql_link); 

     $isBinded = mssql_bind($statement, "@PRSLink", $movement["client_id"], SQLINT1); 
     $isBinded = mssql_bind($statement, "@UserLogged", $movement["imei"], SQLVARCHAR, false, false, 30); 
     $isBinded = mssql_bind($statement, "@AutoInc", $movement["move_id"], SQLINT1); 
     $isBinded = mssql_bind($statement, "@Fecha", $movement["move_date"], SQLVARCHAR); 
     $isBinded = mssql_bind($statement, "@CantBotEntr", $movement["delivery"], SQLINT1); 
     $isBinded = mssql_bind($statement, "@CantBotRet", $movement["withdrawal"], SQLINT1); 
     $isBinded = mssql_bind($statement, "@Pago", $movement["payment"], SQLFLT8); 
     $isBinded = mssql_bind($statement, "@Resultado", $output, SQLVARCHAR, true, false, 2); 

     $retval = mssql_execute($statement); 

     $result = $output; 

     mssql_free_statement($statement); 

     var_dump($retval); 
     var_dump($result); 

     return $result; 

    } 

} 

답변

1

루프의 외부 복귀와 같은 시도)

이 처음 도달 할 때, 함수가 종료 없어 그래서 아무것도 수행되지 않습니다.

오류가 발생할 경우 실행을 중지하려면 예외 메커니즘을 사용할 수 있습니다.

+0

mmmm, 좋은 점, 시도해 보겠습니다. –