我需要为我的数组中的每个元素执行一个mssql存储过程,我该怎么做... 我在这里有一个例子,但它只执行ONCE。我猜测数据库在第一次执行时被锁定,这就是为什么它只执行一次。
我应该制作递归函数吗?并且只有在输出为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;
}
}
答案 0 :(得分:1)
在循环外返回时尝试相同的操作;)
第一次到达时,函数退出,所以没有其他任何操作。
如果要在发生错误时停止执行,可以使用例外机制。