Вы можете опустить первую нулевую проверку, так как equals делает это для вас:
Результат является истинным тогда и только тогда, когда аргумент не является нулевым и является объектом String, который представляет одну и ту же последовательность символов как этот объект.
blockquote>Итак, лучшее решение просто:
if(someOtherString.equals(someObject.getFoo())
Вы не должны пинговать MySQL перед запросом по трем причинам:
Лучший способ справиться с подключениями к базе данных - это обработка ошибок (try / catch), повторные попытки и транзакции.
Подробнее об этом в блоге о производительности MySQL: Проверка наличия активного соединения с базой данных считается вредоносной
В этом сообщении в блоге вы увидите, что 73% нагрузки на этот экземпляр MySQL было вызвано приложениями, проверяющими, работает ли БД.
Я этого не делаю. Я рассчитываю на то, что у меня будет ошибка подключения, если сервер отключится, и я попытаюсь что-то сделать.
Выполнение эхо-запроса может сэкономить вам немного времени и будет казаться более отзывчивым для пользователя, но ошибка быстрого подключения не намного лучше, чем ожидание в течение нескольких секунд с последующей ошибкой подключения. В любом случае пользователь ничего не может с этим поделать.
Нет.
Вы пингуете SO перед переходом на него в браузере, чтобы убедиться, что сервер работает?
Так что я хотел спросить, должен ли я или или нет пинговать сервер mysql (mysqli_ping), чтобы убедиться, что сервер что сервер всегда жив перед выполнением запрос?
Не совсем. Если он не жив, вы узнаете об этом из сообщений об ошибках, приходящих через ваши запросы или при подключении к базе данных. Вы можете получить ошибку mysql с помощью:
mysql_error()
Пример:
mysql_connect(......) or die(mysql_error());
Вообще говоря, нет.
Однако, если у вас есть долго выполняющийся сценарий, например, какой-то внутренний процесс, который вызывается как задание cron, где может быть промежуток времени между подключением и последующими запросами, mysqli_ping()
может быть полезен.
Установка mysqli.reconnect
в true в php.ini полезна в этом случае.
Это не стандартный способ решения проблемы... Если есть исключение, вы будете решать его тогда.
Это похоже на разницу между проверкой существования файла перед попыткой его открыть и перехватом исключения "файл не найден", когда оно возникает... Если это очень, очень распространенная и вероятная ошибка, то, возможно, стоит проверить перед этим, но обычно выполнение должно идти нормально, а исключения должны быть пойманы и обработаны, когда они возникают.
Нет.
Если пинг прошел успешно, это не значит, что запрос пройдет успешно. Что если сервер станет недоступным между моментом, когда вы его пингуете, и моментом, когда вы выполняете запрос?
По этой причине вам в любом случае придется обеспечить надлежащую обработку ошибок вокруг запроса. И если вы это сделаете, вы можете просто полагаться на это как на основную ловушку ошибок.
Добавление пинга просто добавляет ненужные обходные пути, что в конечном итоге замедляет работу вашего кода.
Единственное, что я могу придумать для этого, это если база данных является
1. некритична для функционирования вашего приложения, и,
2. имеет тенденцию к отключению от сети.
В остальных случаях - нет.
Единственный случай, когда имеет смысл использовать ping, это если вы реализуете свою собственную систему пула соединений с БД. Даже в этом случае я бы не стал пинговать перед каждым запросом, только при каждом "подключении" / выходе из пула.