我们在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连接错误处理的任何相关信息...
我相信这意味着我正在寻找错误的东西,并希望我能够在正确的方向上受到指导,因为我必须在明天实施这一点!如果我发现任何相关内容,我会继续我的研究和后续跟进!
谢谢。
答案 0 :(得分:0)
如果数据库连接不好或消失,Doctrine会抛出某种异常(我不记得是什么,驱动程序可能会有所不同)。
所以你可能想要找到合适的地方来捕捉这些异常并妥善处理它们。