2014-03-19 44 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,好点,我会试试 –