Overview
Comment: | DB: Forcer la fin des transactions en cas de crash du script pour empêcher de crasher la DB |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
0bd6e3acda108dc68503130c305d23a4 |
User & Date: | bohwaz on 2017-06-06 00:01:36 |
Other Links: | branch diff | manifest | tags |
Context
2017-06-08
| ||
03:40 | Correction : gérer les noms de plugins en majuscules (signal par @Youssef) check-in: c3541ceb63 user: bohwaz tags: dev | |
2017-06-06
| ||
00:01 | DB: Forcer la fin des transactions en cas de crash du script pour empêcher de crasher la DB check-in: 0bd6e3acda user: bohwaz tags: dev | |
2017-05-30
| ||
00:28 | Renvoyer la taille du fichier pour permettre d'avoir une progression du téléchargement check-in: f286f9d40f user: bohwaz tags: dev | |
Changes
Modified src/include/lib/Garradin/DB.php from [3716397b8d] to [e4161210dd].
︙ | ︙ | |||
57 58 59 60 61 62 63 64 65 66 67 68 69 70 | { $this->flags = \SQLITE3_OPEN_READWRITE; if ($create) { $this->flags |= \SQLITE3_OPEN_CREATE; } // Ne pas se connecter ici, on ne se connectera que quand une requête sera faite } public function close() { $this->db->close(); | > > > > > > > > | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | { $this->flags = \SQLITE3_OPEN_READWRITE; if ($create) { $this->flags |= \SQLITE3_OPEN_CREATE; } // Fermer toute transaction en cours à la fin du script // pour éviter de locker la base // ceci est utile notamment en cas d'erreur dans le script ou de // max_execution_time register_shutdown_function(function () { DB::getInstance()->commit(true); }); // Ne pas se connecter ici, on ne se connectera que quand une requête sera faite } public function close() { $this->db->close(); |
︙ | ︙ | |||
117 118 119 120 121 122 123 | } $this->transaction++; return $this->transaction == 1 ? true : false; } | | | > < | | 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | } $this->transaction++; return $this->transaction == 1 ? true : false; } public function commit($force = false) { if ($force || $this->transaction == 1) { $this->connect(); $this->db->exec('END;'); $this->transaction = 0; } else if ($this->transaction > 1) { $this->transaction--; } return $this->transaction ? false : true; } |
︙ | ︙ |