Обучение/Помощь новичкам | Проверка запросов в бд
Тема закрыта by
SNEG
С твоих слов откуда мне знать удалило запись или нет, также брать в if этот mysqli_query
php
elseif($user['i'] < time() - MAX_LIFETIME) mysqli_query($mysqli, "DELETE FROM `".DB_PREFIX."_ggg` WHERE `vvv` = '".$vvv."'"); Поможет избавиться от копипаст try catch и if()
________
посл. ред. 18.12.2023 в 02:02; всего 1 раз(а); by _(Ulty)_
Не могу понять почему первый варик лучше чем второй, если с базой разорвано соединение выдаст ошибку mysqli_connect(); Что может ещё случится ? Почему правильно первый варик если второй идентично работает
php
$query = mysqli_query($mysqli, "INSERT INTO `".DB_PREFIX."_users` SET `username` = '".esc($_POST['username'])."', `email` = '".esc($_POST['email'])."', `password` = '".$password."'"); if($query) { $reg_complete = 'Регистрация завершена.'; } php
$query = mysqli_query($mysqli, "INSERT INTO `".DB_PREFIX."_users` SET `username` = '".esc($_POST['username'])."', `email` = '".esc($_POST['email'])."', `password` = '".$password."'"); $reg_complete = 'Регистрация завершена.'; В первом варианте за это отвечает if($query). Если соединение с бд вдруг разорвётся, то второй вариант никак не уведомит об этом, а первый наоборот вернёт ошибку и не пропустит на следующий шаг
________
посл. ред. 18.12.2023 в 02:56; всего 1 раз(а); by Denis Legran
Адм
(18 дек 2023, в 2:54)Во втором варианте кода нет явной проверки на успешность выполнения запроса. Он устанавливает $reg_complete для "Регистрация завершена", независимо от результата запроса.
В первом варианте за это отвечает if($query). Если соединение с бд вдруг разорвётся, то второй вариант никак не уведомит об этом, а первый наоборот вернёт ошибку и не пропустит на следующий шаг
php
$user = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT `id`, `password` FROM `".DB_PREFIX."_users` WHERE `username` = '".esc($_POST['username'])."'")); if(!$user) $err = 'Пользователь '.htmlspecialchars($_POST['username']).' не найден.';
________
посл. ред. 18.12.2023 в 03:22; всего 5 раз(а); by SNEG
Я понял смысл , типа update delete insert select можно обрабатывать, типа успех запроса , выполнился или нет при активном соединении, спасибо
php
$user = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT `id`, `password` FROM `".DB_PREFIX."_users` WHERE `username` = '".esc($_POST['username'])."'")); if(!$user) $err = 'Пользователь '.htmlspecialchars($_POST['username']).' не найден.';
php
if (!$user) { $err = 'Пользователь ' . htmlspecialchars($_POST['username']) . ' не найден.'; // Выводишь на этой же странице уведомление с ошибкой echo $err; } php
if (!$user) { $err = 'Пользователь ' . htmlspecialchars($_POST['username']) . ' не найден.'; // Создаёшь перенаправление на страницу входа с сообщением об ошибке header('Location: login.php?error=' . urlencode($err)); exit(); } ________
посл. ред. 18.12.2023 в 04:04; всего 1 раз(а); by Denis Legran
Адм
(18 дек 2023, в 4:04)Можно вывести ошибку пользователю
php
if (!$user) { $err = 'Пользователь ' . htmlspecialchars($_POST['username']) . ' не найден.'; // Выводишь на этой же странице уведомление с ошибкой echo $err; } php
if (!$user) { $err = 'Пользователь ' . htmlspecialchars($_POST['username']) . ' не найден.'; // Создаёшь перенаправление на страницу входа с сообщением об ошибке header('Location: login.php?error=' . urlencode($err)); exit(); } Стр.: 1, 2