我们在Silex应用程序中使用DriverManager::getConnection
来检索与数据库服务器的连接,以及正确实例化的Configuration类。
例如,我负责返回代码并正确处理连接错误,以在连接当前断开时显示用户友好的错误消息。
在我看来,这似乎很简单。但是,在实际发送查询之前,我找不到断言连接有效的任何可用方法。
这是建立连接的示例:
use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\DriverManager;
use Doctrine\DBAL\Query\QueryBuilder;
// ... //
public function __construct( $host, $username, $password, $db, $port )
{
$this->configuration = new Configuration();
$connectionParams = array(
'dbname' => $db,
'user' => $username,
'password' => $password,
'host' => $host,
'port' => $port,
'driver' => 'pdo_mysql'
);
$this->connection = DriverManager::getConnection( $connectionParams, $this->configuration );
}
如果没有有效的连接可用,该方法将失败
public function executeQuery( QueryBuilder $queryBuilder )
{
$query = $queryBuilder->getSql();
$statement = $queryBuilder->execute( $query );
return $statement;
}
我主要使用mysqli,您可以为它简单地执行from the mysqli doc这样的事情。
我正在寻找与当前工作流程等效的方法,但感到惊讶的是,我在任何地方都无法获得有关使用DBAL处理数据库连接错误的任何相关信息...
我相信这意味着我正在寻找错误的事情,希望我能为正确的方向提供指导,因为我必须为明天实现这一目标!如果发现任何相关问题,我将继续我的研究并发布后续信息!
谢谢。
最佳答案
如果数据库连接不好或断开连接,Doctrine将抛出某种异常(我不记得发生了什么,并且驱动程序之间可能会有所不同)。
因此,您可能想要找到合适的位置来捕获这些异常并很好地处理它们。
关于php - 使用Doctrine中的DriverManager和QueryBuilder正确测试连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23418513/