#php #mysql #mysqli #database-connection
#php #mysql #mysqli #подключение к базе данных
Вопрос:
Привет, друзья из SO!
Хорошо, на этот раз у меня немного более сложная проблема. У нас запущен веб-сканер, который нормально функционирует большую часть дня и времени.
Однако время от времени это просто останавливается: ссылка, которая должна быть проанализирована следующей, никогда не меняет своего состояния (с ожидающего на сканирование), и, конечно, это останавливает весь цикл.
Мы регистрируем все ошибки PHP с помощью:
//errores producción
@ini_set('error_reporting', -1);
@ini_set('log_errors','On');
@ini_set('display_errors','Off');
@ini_set('error_log','/var/www/vhosts/xxx.com/xxx.com/xxx');
Нет никаких доказательств того, что что-либо могло вызвать описанную проблему. 0 аномалий.
Следовательно, я полагаю, что проблема может быть связана с какими-то проблемами MySQL?
Каждый выполняемый нами запрос MySQL выполняется с использованием MySQLi с помощью пользовательских функций, поэтому мой вопрос здесь:
Существует ли какой-либо простой подход для записи каждой отдельной ошибки MySQL в тот же файл, где мы храним ошибки PHP?
Вот некоторые из функций, используемых для запроса к MySQL:
Function db_ob($db_link, $ask) {
$feedback = mysqli_fetch_object(mysqli_query($db_link, $ask));
return $feedback;
}
и:
Function db_ob_all($db_link, $ask) {
$feedback = mysqli_query($db_link, $ask);
while ($row = mysqli_fetch_object($feedback)) { $value[] = $row; }
return $value;
}
Итак, что я ищу, это решение в одну или две строки, которое я мог бы добавить в эти функции, чтобы хранить и отслеживать любую проблему или ошибку в том же файле, где я в настоящее время сохраняю ошибки PHP.
Заранее спасибо! Крис;
Ответ №1:
Решена:
1) создайте функцию для отслеживания ошибок в PHP error_log:
Function informar_error_db($db_link) {
error_log("Dreadful SQL error: ". mysqli_error($db_link)." in ".$_SERVER["SCRIPT_FILENAME"]);
}
2) Если есть проблемы с MySQLi, сохраните их:
Function db_ask($db_link, $ask) {
$feedback = mysqli_query($db_link, $ask);
if (mysqli_error($db_link)) { informar_error_db($db_link); }
return $feedback;
}
Здесь:
если (mysqli_error($db_link)) { informar_error_db($db_link); }