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';
}
}