Имеется класс для работы с базой данных myDB (mybd.php). Есть так же файл common.php
с настройками вида:
CODE
require_once('mydb.php');
$DB_MYSQL['dbhostname']='localhost';
$DB_MYSQL['dbusername']='username';
$DB_MYSQL['dbpassword']='password';
$DB_MYSQL['dbname']='dbname';
...?>
$DB_MYSQL['dbhostname']='localhost';
$DB_MYSQL['dbusername']='username';
$DB_MYSQL['dbpassword']='password';
$DB_MYSQL['dbname']='dbname';
...?>
mydb.php
CODE
class myDB
{
var $hostname;
var $username;
var $password;
var $link;
var $result;
function myDB($hostname,$username,$password)
{
$this->hostname=$hostname;
$this->username=$username;
$this->password=$password;
}
function Open()
{
$this->link=@mysql_connect($this->hostname,$this->username,$this->password);
if(!$this->link)
{
$handle = fopen("log.txt", "a+");
fwrite($handle, date('d/m/Y H:i: ').mysql_error()." ".$this->hostname."; ".$this->username.";
".$this->password." --- ");
fclose($handle);
}
}
...
}
?>
{
var $hostname;
var $username;
var $password;
var $link;
var $result;
function myDB($hostname,$username,$password)
{
$this->hostname=$hostname;
$this->username=$username;
$this->password=$password;
}
function Open()
{
$this->link=@mysql_connect($this->hostname,$this->username,$this->password);
if(!$this->link)
{
$handle = fopen("log.txt", "a+");
fwrite($handle, date('d/m/Y H:i: ').mysql_error()." ".$this->hostname."; ".$this->username.";
".$this->password." --- ");
fclose($handle);
}
}
...
}
?>
Далее в каком-либо файле скрипта из друго класса:
CODE
require_once('common.php');
class CSessions
{
var $mydb;
function CSessions($DB_MYSQL)
{
$this->mydb=new myDB($DB_MYSQL['dbhostname'],$DB_MYSQL['dbusername'],$DB_MYSQL['dbpassword']);
$this->mydb->Open();
$this->mydb->SelectDB($DB_MYSQL['dbname']);
}
...
}
?>
class CSessions
{
var $mydb;
function CSessions($DB_MYSQL)
{
$this->mydb=new myDB($DB_MYSQL['dbhostname'],$DB_MYSQL['dbusername'],$DB_MYSQL['dbpassword']);
$this->mydb->Open();
$this->mydb->SelectDB($DB_MYSQL['dbname']);
}
...
}
?>
В итоге время от времени получаем ошибку:
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
И запись в log.txt (идет из mydb.php)
30/08/2006 00:24:
; ;
---
Т.е. класс myDB не получает данных из массива $DB_MYSQL
$DB_MYSQL['dbhostname']='localhost';
$DB_MYSQL['dbusername']='username';
$DB_MYSQL['dbpassword']='password';
В чем может быть причина. Повторюсь: такое бывает в 10% из 100. Но регулярно. Версия PHP 4.4.2
Очень надеюсь на помощь. Спасибо!