Pergunta

Eu tenho alguns CLI do PHP scripts que são executados durante um longo período de tempo (24 horas plus) e, embora regular 'commit tive alguns problemas com transações isoladas, possivelmente causado por scripts de cair.

Minha solução foi criar a transação como segue - foi há um ano que eu pesquisei isso e não consegue lembrar as razões precisas para essas configurações, mas ele pareceu resolver alguns problemas com o banco de dados.

$dbh = ibase_connect($dbhost, $dbuser, $dbpass);$trans = ibase_trans(IBASE_WRITE+IBASE_COMMITTED+IBASE_REC_VERSION+IBASE_WAIT,$dbh);

Já atualizado para php 5.3.5 e descobriu que o ibase_trans linha faz com que uma falha de segmentação.No php ibase_trans página, há uma anotação:

"O comportamento desta função foi alterado no PHP 5.0.0.A primeira chamada para ibase_trans() não irá retornar o padrão de transação de uma conexão."

Então, minha pergunta é se eu posso definir a transação argumentos para o padrão da transação...Secundário pergunta, se eu sou completamente ausentes a ponto de tentar fazer isso de qualquer maneira!

Obrigado

Foi útil?

Solução

Você não deve trabalhar com o padrão da transação.

Definir a sua transação como folows:

$T = ibase_trans($params, $database);

Depois de executar a consulta:

 ibase_query($T, $SQL, $Params)

ou você pode usar ibase_prepare & ibase_execute.

Depois, ligue para

ibase_commit_ret($T); // this mentain transaction active

ou

ibase_commit($T) // this commit work close transaction
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top