Articles of error handling

Ошибка Catch ErrorException, которая обертывает фатальную ошибку PHP

В моей домашней структуре PHP MVC я написал небольшой обработчик ошибок, который обертывает ошибки PHP в исключение, а затем бросает его. class ErrorController extends ControllerAbstract { … public static function createErrorException($number, $message = NULL, $file = NULL, $line = NULL, array $context = array()) { throw new ErrorException($message, $number, 0, $file, $line); } } Затем […]

В PHP, почему «или die ()» работает, но «или возвращать» нет?

В PHP вы можете обрабатывать ошибки, вызывая or die чтобы выйти, когда вы сталкиваетесь с определенными ошибками, например: $handle = fopen($location, "r") or die("Couldn't get handle"); Использование die() не является отличным способом обработки ошибок. Я предпочел бы вернуть код ошибки, чтобы родительская функция могла решить, что делать, вместо того, чтобы просто закончить сценарий безжалостно и […]

PHP: обработка ошибок fopen

Я делаю файл с $fp = fopen('uploads/Team/img/'.$team_id.'.png', "rb"); $str = stream_get_contents($fp); fclose($fp); и затем метод возвращает его как изображение. Но когда fopen () терпит неудачу, потому что файл не существует, он выдает ошибку: [{"message":"Warning: fopen(uploads\/Team\/img\/1.png): failed to open stream: No such file or directory in C:\… Очевидно, это возвращается как json. Вопрос теперь: Как я […]

Как определить, удалось ли выполнить запрос на обновление MySQL, когда данные, переданные в запросе, такие же, как и в базе данных?

Допустим, у вас есть форма с предварительно заполненными данными из вашей базы данных, и вы позволяете своим пользователям вносить изменения и сохранять форму. Если пользователь нажимает кнопку сохранения без внесения каких-либо изменений, MySQL фактически не выполняет операцию записи, и поэтому affected_rows вернет 0. Я понимаю поведение, но какова наилучшая практика для определения того, произошло ли […]

Есть ли способ уловить ошибки MySQL и базы данных в PHP?

Иногда я получаю ошибку базы данных, например Предупреждение: mysql_connect () [function.mysql-connect]: доступ запрещен для пользователя 'test'@'101.190.193.83' (с использованием пароля: YES) Не удалось подключиться: доступ запрещен для пользователя 'test'@'101.190.193.83' (с использованием пароля: YES) " Но по правде говоря, никаких изменений в пароле нет. Есть ли способ зафиксировать эту ошибку в файле журнала и показать на экране […]

Подробная ошибка в fopen

Я использую fopen для чтения из файла $fh = fopen($path, 'r') or die('Could not open file'); Теперь я уверенно получаю ошибку. Не удалось открыть файл. Я проверил путь к файлу и даже изменил права доступа к файлу на 777. Есть ли способ получить подробный отчет об ошибке, почему не удается открыть файл, похожий на mysql_error […]

Печать встроенной строки PHP вместо стирания всей страницы

Как заставить PHP печатать ошибку в строке вместо изменения всей страницы? Я бы хотел, чтобы он #errors на #errors и заполнял это, а не менял все. Используемый мной код die ("Incorrect username or password."); Я очень новичок в PHP, поэтому извините, если это довольно простая задача.

Неустранимая обработка ошибок в Yii

Есть ли способ для электронной почты / регистрации php фатальных ошибок, происходящих в проекте на основе структуры Yii? Например, можно настроить Yii на отправку сообщений об ошибках «неопределенной переменной», но фатальные могут отслеживаться только отдельным, не интегрированным в код рамки, который не идеален.

Как сделать ошибки PHP в тексте вместо HTML

Возможный дубликат: Как я могу сказать PHP, чтобы давать исключение в качестве исходного текста вместо HTML? Я пытаюсь сделать сценарий входа в систему с использованием C # и php, и я планирую продать его как установку с 1 кликом, поэтому мне нужно, чтобы это было доказательством ошибок. Я намеренно пытаюсь сделать ошибки в настройке, но […]

Как восстановить из фатальной ошибки «Допустимый размер памяти»

Вы знаете какое-либо решение для восстановления после фатальной ошибки PHP: « Разрешенный размер памяти … исчерпан » У меня есть функция выключения, которая вызывается, когда появляется фатальная ошибка. Эта функция создает для него исключение ErrorException и регистрирует его. Проблема в том, что, когда памяти больше нет, она не может зарегистрировать ошибку (я вхожу в Firebug […]