1
在我的測試環境類的析構函數中,我希望刪除測試數據庫。在一個普通的方法中執行這個代碼工作正常。在析構函數中調用PDO :: exec()會掛起PHP進程
把它放入析構函數(或使用register_shutdown_function
)也可以,但它會導致我的php過程永遠不會結束。使用xdebug調查代碼的結果是,echo 'finished';
永遠不會到達。
任何想法爲什麼這會導致PHP進程掛起?
public function __destruct()
{
$config = $this->getConfiguration();
if ($config['dbtests']['autogenerate'] && $config['dbtests']['cleanup']) {
/** @var \PDO $dbh */
$dbh = new \PDO('mysql:host=' . $config['database']['host'], $config['database']['user'], $config['database']['password']);
$dbh->exec('DROP DATABASE ' . $config['database']['dbname']);
echo 'finished';
}
}