Question

J'ai des scripts CLI PHP qui fonctionnent depuis longtemps (24 heures et plus) et bien qu'ils fassent des commis réguliers, j'ai eu des problèmes avec les transactions orphelines - peut-être causées par des scripts qui se sont effondrés.

Ma solution était de créer la transaction comme suit - c'est il y a un an que j'ai recherché cela et que je ne me souviens pas tout à fait les raisons précises de ces paramètres, mais cela semblait résoudre certains problèmes avec la base de données.

$ dbh = iBase_Connect ($ dbhost, $ dbuser, $ dbpass); $ trans = iBase_Trans (ibase_write + iBase_Committed + ibase_rec_version + ibase_wait, $ dbh);

Ont maintenant mis à niveau vers PHP 5.3.5 et ont constaté que la ligne IBase_Trans provoque un défaut de segmentation. Sur la page PHP IBASE_TRANS, il y a une note:

"Le comportement de cette fonction a été modifié dans PHP 5.0.0. Le premier appel à iBase_Trans () ne renverra pas la transaction par défaut d'une connexion."

Donc, ma question est de savoir si je peux définir les arguments de transaction pour la transaction par défaut ... Question secondaire, si je manque entièrement le point d'essayer de le faire de toute façon!

Merci

Était-ce utile?

La solution

Vous ne devez pas travailler avec la transaction par défaut.

Définissez votre transaction comme des suivants:

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

Après avoir exécuté votre requête:

 ibase_query($T, $SQL, $Params)

Ou vous pouvez utiliser iBase_prepare & ibase_excute.

Après, appelez

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

ou

ibase_commit($T) // this commit work close transaction
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top