Интернет магазин с нуля на php Выпуск №16 расширение mysqli обработка ошибок базы данных

preview_player
Показать описание
В этом видео мы создадим класс базовой модели, настроим соединение с базой данных при помощи расширения mysqi языка php, и создадим базовый метод crud приложения для отправки запросов. А также настроим запись ошибок при работе методов модели. Онлайн обучение от Web c 0 до профи:

Разработка сайта от WEBQ

_____________
Информация для тех, кто хочет поддержать канал:

Рекомендации по теме
Комментарии
Автор

С новой картинкой стало проще !!! Спасибо!

ЕвгенийАнферов-ыо
Автор

0:00 создаем базовый класс модели в \core\base\model\BaseModel.php, от которого будут
наследоваться и административный, и пользовательский классы модели, этот класс будет в
себе содержать основные методы и для административной, и для пользовательской частью
фреймворка, вспомогательные методы для работы с другими таблицами будем описывать в
дочерних классах модели
0:48 создаем класс DbException для обработки исключений от mysqli
12:30 создаем вспомогательный метод query, который и другие методы будут использовать
25:04 объяснение по оператору switch
26:22 \core\admin\model\Model.php
28:24 тестируем переменную $query

webmaster
Автор

Добрый. Только недавно присоединился к сообществу. Может поздно...(( Но все же спрошу... Все было нормально, до тех пор, как начали соединяться с БД... На 11 минуте мы соединяемся с БД... У меня, почему-то, BaseModel видется как контролер и выскакивает ошибка: Warning: failed to open stream: No such file or directory in on line 34
Прошу помощи... Заранее благодарю.

judoKPI
Автор

Здравствуйте. Заметил что в видео у вас в созданном объекте db в $_instance находятся объекты db и так до бесконечности. Что с этим делать?

bogdankhorvat
Автор

a couple of questions: зачем нам цикл for, если мы не используем переменную $i : for ($i = 0; $i < $result->num_rows; $i++) {
$res[] = $result->fetch_assoc();
} и ещё, код после return не выполняется, т.е. нам break не нужен?

ЕвгенийТертышный-те
Автор

Вот я опять! Все нравится но тут такое дело что когда я хочу сделать базу данных через phpStrom мне выдает такую ошибку :
The specified database user/password combination is rejected: Access denied for user 'root'@'localhost' (using password: YES)

soodhell
Автор

Привет, Денис. Странную ошибку мне выдаёт xdebug php шторм. Если поставить точку остановы в строке класса indexController - $res = $db->query($query); и дальше следовать построчно по коду, то дойдя до выполнения запроса в BaseModel он всё правильно вроде выдаёт результат, т.е в $result приходит объект с данными из БД, но дальше он почему то заходит в проверку if($this->db->affected_rows === -1) и формирует ошибку на экран и в лог, а если запустить то же код без точки остановы, то в браузере всё нормально возвращает. То есть с точкой остановы формирует ошибку(не изменяет почему то значение $this->db->affected_rows с -1 на 2), а без неё всё работает отлично.

АлександрКуба-шн
Автор

Сейчас мы делаем запрос в IndexController и он выполняется в BaseModel соответственно ошибку выдаёт, что ошибка произошла в BaseModel. А есть ли возможность, если вызвали в IndexController, то и ошибку выдавал в IndexController ?

free
Автор

Здравствуйте. Подскажите пожалуйста как решить проблему - если устанавливать соединение $this->db = @new \mysqli(HOST, USER, PASS, DB_NAME); с неправильным именем базы данных, то на этой строке останавливается выполнение скрипта, браузер выдаёт HTTP ERROR 500

iwanzhrabny