- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 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;
Stalker 13.10.2010 00:08 # 0
seonull 13.10.2010 00:37 # 0
Lure Of Chaos 13.10.2010 10:27 # 0
Анонимус 13.10.2010 13:52 # +3
seonull 13.10.2010 15:00 # 0
{
@mysql_query($q);
return true;
}
Мартин 15.10.2010 16:01 # +2
function ErrorsOn()
{
global $SITE_ERRORS;
$SITE_ERRORS = true;
}
function ErrorsOff()
{
global $SITE_ERRORS;
$SITE_ERRORS = false;
}
В движке своя система вывода ошибок)))
Lure Of Chaos 13.10.2010 21:33 # +1
Мартин 15.10.2010 15:53 # 0
FRANZEE 16.10.2010 21:08 # −1
п.с. прошу не пинать, я новичок - учусь не говнокодить :)
This is obvious 16.10.2010 22:27 # 0
da4ever 17.10.2010 03:38 # +1
про засобаченные mysql_querry - rtfm.
if($dbname != "" && @mysql_select_db($dbname, $this->DbAccess)){
// *** отмечаем текущую базу ***
}
ибо дбнейм, по логике приведенной выше, надо сделать собственным полем объекта, потому как сервер, пользователь и пароль хранятся именно так.
пустая ветка ифа и еще одна собачка - снова дурной тон. об отрицаниях автор знает, а в случае фейла у нас все равно вернется тру.
$this->Good();
сказал автор "и это хорошо". если там выполняется присвоение переменных инстанса вроде this->connected = true то непонятно различие в стиле кодирования (раньше - инплейс), а если нет - то не ясно, почему этот вызов не может располагаться в модуле запускающем "функцию подключения к БД".
и еще про "Архитектуру"©:
this->conneced - не там и слишком рано.
this->mysqlError() - плохо из-за названия (хотя бы errorMySql - все рядышком будут) и из за того, что в глобал неймспейсе этих эрроров будет 100500: от StupidUserError() до LameCodeInternalFailure(). собрать все в эррор с энумом тайпов и приоритетами. одни ерроры - просто логим, со вторых - даим.
---------
все написанное выше - коммонсенс.
комментарии от людей на пхп разрабатывающих люто приветствуются.
Мартин 17.10.2010 08:50 # 0
Где пустая ветка условия? Собачки только говорят интерпретатору, что не надо выводить ошибку, если она произойдет в этом месте. Функции будут продолжать возвращать значения.
>> что в глобал неймспейсе этих эрроров будет 100500
Ошибок, кстати, в логах много накапливается (бывает 50-100 мб)...
da4ever 17.10.2010 16:24 # 0
вывод ошибок как-бы отключается глобально.
про 100500 - это я о функциях, уникальных для каждого типа ошибки.
FRANZEE 17.10.2010 12:36 # 0
Мартин 17.10.2010 08:44 # 0
А вообще лучше настроить мускул на отдачу нужной кодировки сразу