- RU.PHP ------------------------------------------------------------- RU.PHP -
Msg : #2075 [514]
От : Paul Yanchenko 2:5080/151 07 августа 03, 01:46
Кому : Cyrill Malevanov 07 августа 03, 21:48
Тема : Re^2: mysql_connect() и mysql_close()
-------------------------------------------------------------------------------
Quoting Cyrill Malevanov wrote to Alexei (06 Aug 03 02:39)
Hello,
CM> А это проблемы не того, что там "сайт не в koi-8", а того, что он с
CM> хостингом не дружит, или разработчики с головой или, что меньший грех, с
CM> документацией.
Пожалуйста не надо вот этих грязных инсинуаций. С головой и документацией у
меня полный порядок. А вот хостинг - да, жутко глючный. Взять хотя бы то, что
временами на нем раз через раз обламывается коннект к базе с ошибкой "Too many
connections", причем не зависимо от использования или не использования
pconnect. Из-за чего пришлось делать дополнительную проверку и при получении
данной конкретной ошибки повторять попытку соединения до 20 раз. Проблема
решилась. Hо хостинг все равно кривой, это и в других моментах проявляется.
А проблема, как я уже говорил в том, что хостинг временами глючит. Вот код:
(Сорри за плохо читабельный вид из-за авто-переноса строк в голдед и др.)
function connect()
{
$tries = 0;
do {
if ($this->_pcon)
$this->_link =
@mysql_pconnect($this->_host.((!empty($this->_port)&&($this->_port != 3306)) ?
':'.$this->_port : ''), $this->_user, $this->_passwd);
else
$this->_link =
@mysql_connect($this->_host.((!empty($this->_port)&&($this->_port != 3306)) ?
':'.$this->_port : ''), $this->_user, $this->_passwd);
$tries++;
if ($this->_link !== FALSE) {
if (@mysql_select_db($this->_name, $this->_link) !== FALSE ) {
if (@mysql_query("SET CHARACTER SET cp1251_koi8",
$this->_link) === FALSE)
return $this->raiseError('Could not set database
character set: '.mysql_error($this->_link), PEAR_LOG_ALERT);
return TRUE;
} else
return $this->raiseError('Could not select database:
'.mysql_error($this->_link), PEAR_LOG_ALERT);
} else {
usleep($this->_try_delay); // Wait 0.1 sec
}
} while ((mysql_errno() == 1040) && ($tries <= $this->_max_tries));
return $this->raiseError(mysql_error(), PEAR_LOG_ALERT);
}
Hа мой взгляд все вполне корректно и тот факт, что это работает - подтверждает
это. То, что в один раз из 100 или 1000 запрос "SET CHARACTER SET cp1251_koi8"
не срабатывает как надо - чья вина?
--- Good byte! mail: devnull(at)mail15(dot)com
* Origin: garbage (2:5080/151)
При переходе по баннеру - скидка 25% на первый месяц обслуживания! При переходе по баннеру - скидка 25% на первый месяц обслуживания!