Ну очень эффективная борьба с ошибками

Новичок к спецу пришёл, и спросила кроха:
— Я хочу, чтоб хорошо, но выходит плохо…

Не только сайты специфической направленности могут повеселить оптимистичного циника. Пришел на программерский форум (PHP-MySQL - желательно выучить перед прочтением) один кадр со стандартным интеллектуальным вопросом.

Друзья, у меня как у начинающего, проблема начинающего. Установил весь джентельменский набор, только вот PHP c MySQL не контактирует, то есть в браузере не выводятся сообщение о том что есть соединение с базой данных. Вообще чистый лист. Может кто подскажет откуда копать. Проверял установку и настройку php.ini, не помогает.

Вполне естественно, что получил ответ о сезоне отпусков среди телепатов и эмоциональное пожелание включить вывод ошибок. Включил.

Отображение ошибок включил в ini
display_errors = On
display_startup_errors = on
log_errors = on

все равно чистый лист. Прошу прощения за ламерство, но ведь все когда то начинали

Слава богу, нашёлся интуит, который сразу же категорически потребовал предъявить код. Хотя мы там все уже такие ясновидящие шаманы, что можем запросто секты открывать. Сказать, что показ кода решил проблему — значит, ничего не сказать. Опытный чайник без труда ткнет пальцем в проблемное место хохму дня, попробуйте и вы:

$dblocation = 'localhost'; // сервер базы данных
$dbuser = 'root'; // ваш логин на Mysql сервере
$dbpasswd = ''; // пароль
 
// соединение с сервером
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
 
if (!$dbcnx) // если не соединилось
{
  echo('Не соединилось!');
  // перестаем выполнять скрипт дальше
}
else
{
  $status_servera = explode(' ', mysql_stat($dbcnx));
  print_r($status_servera);
}

Посмотрели? Не буду с гнусной ухмылкой спрашивать, какую следующую команду выдать начинающему, а сразу продолжу: скрипя зубами, народ посоветовал убрать «@» перед mysql_connect. Как и следовало ожидать, обиженным тоном (вернее, текстом) вопроситель заявил, что после этого совета всё стало хуже:

Тогда вот такая фигня
Fatal error: Call to undefined function mysql_connect() in D:\data\test.php on line 7

А чего, хороший способ. Этакий стиль программирования «похрен всё». Выпадает фатальная ошибка? Поставил «@» и всё, программа работает. Notice же можно так ныкать, чем Fatal Error хуже? И коллеги, если что, легко разберутся, где косяк.

И отправлен был проситель ставить позабытый модуль для работы с MySQL. И поднимал он глюки и разговаривал с ними.

28.07.2010 | 00:58




 
Добавить комментарий