2014-03-19 43 views
1

我需要爲我的數組中的每個元素執行一個mssql存儲過程,我該怎麼做... 我在這裏有一個例子,但它只執行一次。我猜數據庫在第一次執行時被鎖定,這就是爲什麼它只執行一次。PHP在每一個執行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,好點,我會試試 –