Почему строка кода не работает с удаленным подавителем ошибок? - PullRequest
3 голосов
/ 22 марта 2011

Я использую PHP-классы для подключения к базе данных. Я не могу решить проблему - пожалуйста, помогите мне с этим.

У меня есть функция:

function getCampus($cm_id) //returns campus name
{
    $this->query = "select cm_name from campus where cm_id = ".$cm_id.";";
    $rd = $this->executeQuery();
    @$data = $rd->fetch_assoc();
}

и когда я удаляю @ из @$data, это не работает. Пожалуйста, помогите мне: объясните, что это за альтернативный путь. Спасибо.

Ответы [ 4 ]

6 голосов
/ 22 марта 2011

@ - оператор подавления ошибок.Использование его в качестве префикса строки кода подавит все не фатальные ошибки.Плохо использовать его почти каждый раз.

Если вы не удалили ничего, удалив его, попробуйте добавить error_reporting(E_ALL) в начало вашего файла или в файл типа начальной загрузки и убедитесь, что display_errors = On вphp.ini (вы также можете использовать ini_set('display_errors', 'on')).

2 голосов
/ 22 марта 2011

@ при использовании в выражении PHP подавляет ошибки для этого выражения. Таким образом, шансы «это не работает», потому что $rd->fetch_assoc() вызывает исключение.

2 голосов
/ 22 марта 2011

@ используется для подавления ошибок и предупреждений.

@ не твоя проблема

2 голосов
/ 22 марта 2011

Символ @ перед командами используется для игнорирования любых ошибок, возникающих во время выполнения.

Эта строка кода все еще не работает, когда вы ставите @ перед ним, но выне вижу этогоПопробуйте выяснить, в чем проблема с $rd->fetch_assoc().Кроме того, запрос выглядит довольно неправильно.

...