Firebird ibase_trans()PHP非常慢

时间:2016-07-08 15:25:50

标签: php apache transactions firebird

当我使用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); 
    }
}

有人能帮助我吗?

0 个答案:

没有答案