2014-03-02 26 views
0

我目前使用在我的項目下面的事情:PDO SQLSRV顯示錯誤 - 而露出的數據庫結構

  • Symfony的2.3.11
  • SQL Server 2008中
  • 學說2(最新)+ PDO_SQLSRV(5.5)
  • PHP 5.5.3

我做下面當我打電話$em->flush()

try { 
    $this->em->flush(); 
} catch (\PDOException $e) { 
    switch ($e->getCode() { 
     case /*Depending of the codes*/: 
      throw new \Exception(/*Message that hides the real error and just gives the code and a user-friendly message*/); 
    } 
} 

但是,此操作仍顯示任何SQL Server錯誤,向用戶公開查詢和內部結構。我應該怎麼做來捕捉這些錯誤並將它們轉換爲更好的消息?事先謝謝你。

+0

指定symfony環境是指您指的是開發環境還是生產環境 –

+0

這是生產環境,忘記提及了。 –

+0

它可能會幫助你http://forum.symfony-project.org/viewtopic.php?f=23&t=70585 –

回答

0

由於拋出異常,它顯示異常。不要拋出它們或寫入異常偵聽器,或在catch塊之後處理它們。請參閱這些googledfrom symfony

+0

等待,是那些PDO異常(我不確定它們是否被歸類爲這種類型,但它們更多地沿着顯示的SQL Server錯誤消息)還是可以將它們歸類爲內核異常? –

+0

你基於異常處理它們? –

+0

是的,我喜歡。但我得到的錯誤信息是'Msg 515,Level 16,State 2,Line 1行' 不能將NULL值插入'LastName'列,表'Northwind.dbo.Employees_2'; 列不允許有空值。 INSERT失敗。 該聲明已被終止。(這是一個從其他地方獲取的示例,但我希望它足夠清楚地顯示我收到的消息類型)。我一直在把它們作爲PDO異常來處理,否則我不知道這裏發生了什麼樣的錯誤或者什麼組件失敗。我一直在使用谷歌搜索,並沒有發現任何東西。 –