@Fantazzer1

Почему игнорируется блок кода при подключении к бд?

Есть файл с подключением к БД, к которому я обращаюсь когда пытаюсь проверить на наличие пользователя в БД при авторизации. Т.е. есть форма, куда нужно ввести логин пароль, кнопка для входа, при нажатие на которую данные через пост передаются в другой файл, в котором они должны сравниваться с данными из бд.
Все делаю вроде как обычно, ничего экста ординарного, но по какой-то непонятной мне причине, что-то странное с подключеним к БД, уже написал проверку, успешно ли подключение, но по итоге не выводится ни сообщение о том что подключение успешно, ни ошибки, как будто блок кода вообще отсутствует. Причем если написать что либо вверху файла, до подключения, все работает.
Подскажите, может что-то упустил при подключении? (Данные для подключения к БД точно верные, проверил 100 раз через консоль, имя дб, пароль и все остальное одинаковые 100%)
собственно код для подключения к БД
<?php
$servername = "localhost";
$username = "root";
$password = "fantazer`";
$dbname = "fantazzer";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} else {
echo "Connected successfully";
}

$conn->close();
?>
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Вопрос очень важный. Он показывает, насколько изменились подходы к программированию за четверть века.
Вот этот детский лепет -
spoiler
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} else {
echo "Connected successfully";
}
- происходит прямиком из прошлого века. Именно так писали на РНР3, в 1998 году.

С тех пор прошло уже 25 лет, а пехопа всё так и пишет РНР немного подрос, и проверять ошибки при работе с БД вручную стало не нужно. А чтобы увидеть ошибку, надо всего лишь включить вывод ошибок РНР. На домашнем сервере достаточно просто написать в начале скрипта

ini_set('display_errors', 1);

(и не забыть поставить 0, когда код поедет на боевой).

Соответственно, блок кода "игнорируется" просто потому, что ошибка является фатальной, и выполнение скрипта останавливается, ещё до всех этих if ($conn.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы