Здравствуйте. В разных частях моего php-скрипта я выполняю запросы к БД MySQL. Как обезопасить эти запросы, чтобы например если произошел тайм-аут подключения к MySQL серверу, происходило переподключение, вместо того, чтобы падал весь скрипт? Окружение каждого запроса к БД кодом вида
set_error_handler("mysqlErrorsHandler", E_ALL);
mysql_query($d, $query);
restore_error_handler();
повлечет за собой огромное добавление дублируемого кода - что явно плохо. Как можно решить проблему изящно?
P.S. Примерные ожидаемые ошибки известны - "MySQL Server has gone away" и "Error while sending QUERY packet", при их возникновении просто делать переподключение. Хотя, конечно же, хотелось бы обеспечить безопасность от любых ошибок.
UPD: Написал такую функцию:
function safe_query(&$d, $query){
if(mysqli_ping($d)===true){
return mysqli_query($d, $query);
}else{
mysqli_close($d);
$d = mysqli_connect('localhost', 'root', '');
if(mysqli_ping($d)===true)
return mysqli_query($d, $query);
else
return false;
}
}
Это нормальное решение?
Как вариант
<?php
$connection = mysql_connect('localhost','user','pass');
mysql_select_db('db',$conn);
if (! mysqli_ping ($connection)) { ....
mysql_close($conn);
$conn = connection('localhost','user','pass');
mysql_select_db('db',$conn);
}
?>
Или написать класс для работы с БД который будет реализовывать нечто подобное. Cсылка на документацию
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеТребуется на сайте произвести подсчет, сколько записей находится в каждой категории, а так же подсчитать общее кол-во всех записей
У меня есть table на котором есть большая информация, мне нужно написать SELECT * FROM table, так чтобы SELECT возвращал меня информацию на JSON формате, например...
Добрый деньПишу интернет магазин, по одному курсу, который нашел на просторах интернета