Я не могу предоставить точный код, поэтому постараюсь проиллюстрировать проблему.Сначала у меня есть пара соединений с БД, которые подключаются и работают нормально ($ local, $ remote).Я передаю эти соединения в класс dbReader, сохраняю их в объекте и, наконец, сохраняю объект в APC:
class dbReader {
public $APC;
public $local;//Local DB
public $remote;//Remote DB
public function __construct($local,$remote){
ePrint($IMX);
$this->APC = new CacheAPC();//APC Object
$this->local = $local;
$this->remote = $remote;
//Store dbreader in APC for reference:
$this->storeDBReader();
}
public function getRunTypes(){
//Query APC:
$array = $this->APC->getData('RunTypes');
//Populate APC:
if(!$array){
$array = array();
$query = ...;
$result = mysql_query($query,$this->remote);
while($row = mysql_fetch_array($result)){
$array[$row['ID']] = $row['Val'];
}
$this->APC->setData('RunTypes',$array);
}
return $array;
}
public function storeDBReader(){
//Store dbReader in APC for reference:
$this->APC->setData('dbReader',$this);
}
}
Связь с подключением хороша на протяжении всего процессадо тех пор, пока я не восстановлю объект dbReader из APC и не попытаюсь вызвать функцию getRunTypes ().Я думаю, что когда объект хранится в APC, ссылки на MySQL уничтожаются.Это правда?Есть предложения?