Skip to content
Valider f5c921f2 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

3 fonctions pour gérer des transactions :

* sql_preferer_transaction() renvoie TRUE ou FALSE si le moteur SQL prefere, ou éventuellement peut,  en utiliser
* sql_demarrer_transaction() démare une transaction
* sql_terminer_transaction() clos la transaction

Les fonctions ne sont implémentés que sur SQLite dans ce dépot. (les appeler ne fera donc rien dans les autre moteurs SQL actuellement).

Cela permet des gains intéressant sur des sql_update de sqlite :

Le foreach dans l'exemple si dessous passe, pour 190 enregistrements (seulement), de 23s à 400ms !


if (sql_preferer_transaction()) {
	sql_demarrer_transaction();
}
		
foreach ($inserts as $id_plugin => $complements) {
	sql_updateq('spip_plugins', $complements, 'id_plugin=' . intval($id_plugin));
}
		
if (sql_preferer_transaction()) {
	sql_terminer_transaction();
}
parent 33146c6c
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter