Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wywołanie funkcji
Forum PHP.pl > Forum > Przedszkole
Stron: 1, 2
Mariner
Cytat(Fred1485 @ 22.03.2015, 13:52:37 ) *
Owszem wyjątek pięknie zostanie obsłużony i wyświetli rządany komunikat tylko że warning dalej będzie wink.gif


Warning występuje nawet kiedy sprawdzanie czy nawiązano polączenie z bazą danych występuje w w bloku try catch ?
Fred1485
Oczywiście sprawdzam w bloku try wink.gif
Mariner
Sprawdź sobie czy odpowiada Ci takie działanie kodu, który w przypadku błędu połączenia nie pokazuje ostrzeżenia (warning)

CODE
mysqli_report(MYSQLI_REPORT_ALL);

try {

$database = new mysqli('localhost', 'root', 'password', 'db_name');

} catch(Exception $error) {


}


Albo taka propozycja użycia tego kodu:

CODE

<?php

function database() {

mysqli_report(MYSQLI_REPORT_ALL);

$database = mysqli_connect("localhost", "my_user", "my_password", "world");

return $database;
}

try {
$database = database();
} catch (Exception $e) {
// tutaj obsługujemy błąd połaczenia
// przykładowo wyświetlamy komunikat
echo sprintf ( 'Mysqli connect Error with message : "%s" and Code "%s" ', $e->getMessage(), $e->getCode() );

$database = null; // database ustawiamy na false - czyli brak połączenia, jeżeli będziemy dalej korzystali z niej w naszym skrypcie
}


if($database) { // jeżeli database przechowuje połączenie/nie jest false

if(!$database->set_charset("utf8")) { // prawdź kodowanie

throw new Exception('Błąd wyboru kodowania!');

}

}
Fred1485
To niegłupie rozwiązanie wink.gif
com
A jak dałem link do manuala z tym przykładem to nie chciałeś użyć wink.gif post #29 biggrin.gif
Fred1485
Sprawdzałem ta metodę ale jeszcze wtedy bez wyjątków próbowałem i błąd sie wyświetlał tylko ładniej mimo wszystko dzieki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.