当我使用ibase_trans()时,脚本会启动无限循环并且不响应。
我正在请求nusoap webservice。 如果我只打印nusoap数据,那么脚本执行时间是3秒,在我取消注释启动事务的行后,它会启动无限循环。
$dbh1 = ibase_connect(DB_HOST1, DB_USER1, DB_PASS1) or die('die message');
$tr1 = ibase_trans($dbh1);
在nusoap数据循环后,我有这些行:
$query3 = ibase_query($tr1,"INSERT INTO EXECUTAR ( FLAG ) VALUES ( 2 )") or die('teste');
在这里开始解决问题。
My php version : 5.6
Xampp version: 3.2.1
Firebird: 2.5
完整代码:
if ($client->fault) {
echo "<h2>Fault</h2><pre>";
print_r($result);
echo "</pre>";
} else {
$error = $client->getError();
if ($error) {
echo "<h2>Error.</h2><pre>" . $error . "</pre>";
} else {
$dbh1 = ibase_connect(DB_HOST1, DB_USER1, DB_PASS1) or die('die message');
$tr1 = ibase_trans($dbh1);
$TotalProdutos = 0;
foreach($result['ConsultaEstoqueProdutosResult']['diffgram']['NewDataSet']['Estoques'] as $produto){
$TotalProdutos++;
$query1 = ibase_query($tr1,"INSERT INTO ATUALIZA_PRE ( CODIGO,
ESTOQUE,
ATIVO,
DISPONIVEL,
ESTOQUEDISPONIVEL,
PRECOSEMST,
PRECOREVENDA )
VALUES (
'{$produto['CODIGO']}',
'{$produto['ESTOQUE']}',
{$produto['ATIVO']},
{$produto['DISPONIVEL']},
{$produto['ESTOQUEDISPONIVEL']},
{$produto['PRECOSEMST']},
'".$produto['PRECOREVENDA']."')")or die('teste1');
}
$dbh1 = ibase_connect(DB_HOST1, DB_USER1, DB_PASS1) or die('die message');
$tr1 = ibase_trans($dbh1);
$query3 = ibase_query($tr1,"INSERT INTO EXECUTAR ( FLAG ) VALUES ( 2 )") or die('teste');
ibase_commit($tr1);
ibase_close($dbh1);
}
}
有人能帮助我吗?