Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przerwanie generowania strony z bazą
RAM
post
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();
}
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 12:26