2011-12-05 12 views
1

我欣欣表包含以下字段,如何自定義的Joomla數據庫SQL的錯誤信息,以及如何防止重複條目

ID,姓名,欣欣其中ID是INT型自動遞增字段(PK) 。 showtime時間類型獨特字段。

當我嘗試一個放映時間(重複值)添加到傳送數據字段($行向>店())它顯示以下的Joomla錯誤消息。(我使用$行向> getError()方法)

TableShowTime: :store failed 
    Duplicate entry '10:30:00' for key 'showtime' SQL=INSERT INTO `jos_myextension_showtime` (`id`,`name`) VALUES ('0','evening') 

我想知道有沒有什麼辦法,只顯示數據庫錯誤信息不顯示SQL查詢。 我有一個想法,在插入之前使用查詢來檢查重複值,這是一個好習慣嗎? Plz幫助。

回答

2

我認爲,如果你不想顯示查詢,那麼你不應該顯示錯誤消息的其他部分(不要告訴用戶你試圖插入重複密鑰)。一個簡單的修復到這可能是這樣的:

if ($row>getError()) { 
    echo "Could not store [...]"; 
} 

如果這是一個自定義組件,你也可以修改你的表類自定義這些錯誤信息,甚至顯示取決於錯誤號不同的錯誤消息。

我希望它有幫助!

+0

感謝您的幫助。我也想知道是否有任何方法檢查值(showtime)已經在表中。我可以使用簡單的選擇查詢來完成。但Joomla中是否有更好的方法? – Sara

+1

我認爲一個簡單的查詢是可以的。也許還有其他方法可以做到這一點,比如試圖根據showtime值加載一行,並使用來自該行的信息返回錯誤(如果該行不爲空),但簡單的查詢就可以。 – alghimo

+1

非常感謝。 – Sara