我們在我們的Silex應用程序中使用DriverManager::getConnection
來檢索與我們的數據庫服務器的連接以及正確實例化的Configuration類。正確使用Doctrine中的DriverManager和QueryBuilder測試連接
例如,如果連接當前處於關閉狀態,我負責重新執行代碼並正確處理連接錯誤,以顯示用戶友好的錯誤消息。
在我的腦海裏,這似乎很簡單。但在實際發送查詢之前,我無法找到任何可用的斷言連接有效的方法。
下面是建立連接的例子:
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周圍的任何地方DB連接錯誤處理任何相關信息......
我認爲,這意味着我要找錯誤的事情和希望,我可以在正確的方向上引導,因爲我必須爲明天實現這個目標!如果我發現任何相關內容,我會繼續我的研究併發布後續跟蹤!
謝謝。
是的,它會拋出一個DBALException異常。我更像是一個JavaScript編碼器,我實際上忘記了反斜槓類名稱(\ DBALException),以便用於基本名稱空間而不是當前的名稱空間......這只是愚蠢的。 謝謝! – Mikechaos