У меня нет проблем с подключением к базе данных с использованием PHP, однако в некоторых сценариях, которые я тестировал, я видел небольшую разницу в команде connect.
В чем разница между @mysql_connect и mysql_connect ?
Я никогда не пользовался символом @ при написании собственного скрипта, так что просто задавался вопросом, послужило ли оно цели.
заранее спасибо
Символ @ перед функцией блокирует его. Смысл, вы не получите никаких сообщений об ошибках при его выполнении, даже если это не удается. Поэтому я предлагаю: не используйте его
Кроме того, как сказал @AlexanderLarikov, больше не используйте mysql_* , сообщество начало обесценивать эту функцию.
Это оператор управления ошибкой / . Это просто позволяет вам подавить ошибку.
Я бы предложил, чтобы вы опустили его в своем коде.
Из документации:
В настоящее время префикс оператора ошибки «@» даже отключает отчет об ошибках для критических ошибок, которые прекратят выполнение скриптов. Между прочим, это означает, что если вы используете «@» для подавления ошибок от определенной функции, и либо она недоступна, либо была опечатана, скрипт будет умирать прямо там без указания относительно причины.
Это механизм подавления ошибок. Итак, скажем, при попытке подключения произошла ошибка, PHP молча игнорирует ее, а не отображает / регистрирует ее (в зависимости от ваших настроек).
Я лично считаю, что это плохая практика, чтобы использовать это, поскольку, на мой взгляд, вы должны написать свой код для обработки ошибок, а не просто отменить их.
@ Supresses warnings http://php.net/manual/en/language.operators.errorcontrol.php использует его с умом
Если не использовать какой-либо вариант, что-то вроде этого;
if («Я просто делаю тест на моем srv») {
error_reporting (E_ALL);
} else {
error_reporting (0);
}
Тогда это можно было бы рекомендовать для этой ситуации;
$ conn = @mysql_connect (...);
if ($ conn === false) {
// обрабатывать ошибку
}
Или;
@mysql_connect (...) или die («Не удалось подключиться к ...»);
Таким образом, @ подавляет ошибку, если она существует в строке «где используется подавляемая функция».
// Подавляем? Да, потому что вы не можете применять @ чтобы die, exit, eval … функции, если это структурные функции.