Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 7.10.2008 Ostrzeżenie: (0%)
|
Chciałbym zapytać o taką rzecz: jak postępować w przypadku gdy
strona używa bazy danych, a może wystąpić błąd przerywający tworzenie strony. Pytam bo nie wiem czy PHP automatycznie wycofuje transakcje i zamyka połączenie z bazą. Czy takie rozwiązanie z funkcją shutdownDatabase() ma sens: function openDatabase() { global $db, $inTransaction; $db = new mysqli('localhost', MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE); if (!empty($db->connect_error)) { $db = null; return false; } $db->query('SET NAMES latin2'); $db->query('SET CHARACTER SET latin2 COLLATE latin2_polish_ci'); $db->autocommit(true); $inTransaction = false; register_shutdown_function('shutdownDatabase'); return true; } function closeDatabase() { global $db; if (!is_null($db)) { $db->close(); } } function startTransaction() { global $db, $inTransaction; $db->autocommit(false); $db->query('START TRANSACTION'); $inTransaction = true; } function commitTransaction() { global $db, $inTransaction; $inTransaction = false; if (!$db->commit()) { $db->rollback(); $db->autocommit(true); error(ERRMSG_DATABASE_OPERATION_FAILED); return; } $db->autocommit(true); } function rollbackTransaction() { global $db, $inTransaction; $inTransaction = false; if (!$db->rollback()) { $db->autocommit(true); error(ERRMSG_DATABASE_OPERATION_FAILED); return; } $db->autocommit(true); } function shutdownDatabase() { if ($inTransaction) { rollbackTransaction(); } closeDatabase(); } |
|
|
|
RAM przerwanie generowania strony z bazą 24.07.2010, 08:18:24
mkozak Zacznijmy od tego, że tabele MySQL muszą być utwor... 26.07.2010, 14:20:06 ![]() ![]() |
|
Aktualny czas: 23.12.2025 - 22:46 |