Witam! Nie mam z bazami danych, ćwiczę prostre kody ale mam pytanie na temat zakończenia skryptu php w pewnych przypadkach, mam tutaj ktod który go przedstawia:
$db_connect = @new mysqli($db_host, $db_user, $db_password, $db_name);
if($db_connect->connect_errno != 0)
{
$_SESSION[e_code] = 1;
header("Location: ../index.php");
exit();
//echo "Error: ".$db_connect->connect_errno."<br/>Desciption: ".$db_connect->connect_error;
}
else
{
$email = htmlentities($email, ENT_QUOTES, "UTF-8");
$password = htmlentities($password, ENT_QUOTES, "UTF-8");
$sql_query = sprintf("SELECT id FROM USER WHERE email='%s' AND password='%s'", mysqli_real_escape_string($db_connect, $email), mysqli_real_escape_string($db_connect, $password));
if($result = @$db_connect->query($sql_query))
{
$user_amount = $result->num_rows;
$user_row = $result->fetch_assoc();
$result->free();
if($user_amount > 0)
{
/*
Wszystko OK
*/
$db_connect->close();
header("Location: ../nextpage.php");
exit();
}
else
{
// Nie znalezniono w bazie
$_SESSION[e_code] = 2;
$db_connect->close();
header("Location: ../index.php");
exit();
}
}
else
{
// Blad przy zapytaniu
$_SESSION[e_code] = 3;
$db_connect->close();
header("Location: ../index.php");
exit();
}
$db_connect->close();
}
Jeżeli coś zakończyło mi się niepowodzeniem i nie ma sensu wykonywać dalej skryptu to czy poprawną formą jest zastosowanie:
header("Location: ../index.php");
exit();
W środku skryptu tak jak jest wyżej pokazanie ? Jeżeli coś zakończyło mi się powodzeniem i z tego powodu chcę przejść do nowej strony to też taka forma jest poprawna ? Dużo kodu się tutaj powtarza jeżeli w kilku skryptach łączę się z bazą, czy normalną rzeczą jest opakowanie funkcji łączącej się z bazą w klasę ? Chodzi mi tutaj o przypadek jeżeli bawię się AJAX'em i każdy skrypt/osobny plik php wykonuje zapytania do bazy, to kod mi się powtarza.
Dobrą praktyką jest mieć wszystkie zapytania do bazy w osobnym pliku PHP np. sql_query.php zapisane w tablicy ?