@mysql_connect и mysql_connect

У меня нет проблем с подключением к базе данных с использованием PHP, однако в некоторых сценариях, которые я тестировал, я видел небольшую разницу в команде connect.

В чем разница между @mysql_connect и mysql_connect ?

Я никогда не пользовался символом @ при написании собственного скрипта, так что просто задавался вопросом, послужило ли оно цели.

заранее спасибо

Related of "@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 … функции, если это структурные функции.