"PHP" / Говнокод #4358 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
// Функция для подключения к БД

// *** параметры коннекта ***
ErrorsOff();
$this->DbAccess = @mysql_connect($this->Server, $this->User, $this->Password);
ErrorsOn();
if($this->DbAccess){
	$this->Connected = true;
	@mysql_query("set character_set_client='cp1251'");
	@mysql_query("set character_set_results='cp1251'");
	@mysql_query("set collation_connection='cp1251_general_ci'");
	$this->Version = mysql_get_server_info();
	if($dbname != "" && @mysql_select_db($dbname, $this->DbAccess)){
		// *** отмечаем текущую базу ***
	}
}else{
	$this->Error('Не удалось подключиться к серверу!');
	$this->MySQLError();
	return false;
}
$this->Good();
return true;

Запостил: Мартин Мартин, (Updated )

Комментарии (15) RSS

  • Может, конечно, не в тему, но что делает функция ErrorsOff() ? Себе такую хочу 😉
    Ответить
    • Тоже задавался этим вопросом. Видимо те, кто писал код, об этом не знали (=
      Ответить
  • а где собственно, здесь ошибки?
    п.с. прошу не пинать, я новичок - учусь не говнокодить 🙂
    Ответить
    • ErrorsOff(); + @ потому как во-первых, плохой тон, а во-вторых - оверкил.

      про засобаченные mysql_querry - rtfm.

      if($dbname != "" && @mysql_select_db($dbname, $this->DbAccess)){
      // *** отмечаем текущую базу ***
      }
      ибо дбнейм, по логике приведенной выше, надо сделать собственным полем объекта, потому как сервер, пользователь и пароль хранятся именно так.
      пустая ветка ифа и еще одна собачка - снова дурной тон. об отрицаниях автор знает, а в случае фейла у нас все равно вернется тру.

      $this->Good();
      сказал автор "и это хорошо". если там выполняется присвоение переменных инстанса вроде this->connected = true то непонятно различие в стиле кодирования (раньше - инплейс), а если нет - то не ясно, почему этот вызов не может располагаться в модуле запускающем "функцию подключения к БД".

      и еще про "Архитектуру"©:
      this->conneced - не там и слишком рано.
      this->mysqlError() - плохо из-за названия (хотя бы errorMySql - все рядышком будут) и из за того, что в глобал неймспейсе этих эрроров будет 100500: от StupidUserError() до LameCodeInternalFailure(). собрать все в эррор с энумом тайпов и приоритетами. одни ерроры - просто логим, со вторых - даим.

      ---------
      все написанное выше - коммонсенс.
      комментарии от людей на пхп разрабатывающих люто приветствуются.
      Ответить
      • >> пустая ветка ифа и еще одна собачка - снова дурной тон
        Где пустая ветка условия? Собачки только говорят интерпретатору, что не надо выводить ошибку, если она произойдет в этом месте. Функции будут продолжать возвращать значения.

        >> что в глобал неймспейсе этих эрроров будет 100500
        Ошибок, кстати, в логах много накапливается (бывает 50-100 мб)...
        Ответить
        • так там не пустая ветка? поставили бы как это обычно бывает троеточее. я наивно решил, что внутри ифа - только одна строка, и та - комментарий.

          вывод ошибок как-бы отключается глобально.

          про 100500 - это я о функциях, уникальных для каждого типа ошибки.
          Ответить
    • Как еще сказал Lure Of Chaos, можно спокойно заменить три запроса на установление кодировки одним: "SET NAMES cp1251".

      А вообще лучше настроить мускул на отдачу нужной кодировки сразу
      Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8