2013-05-16 17 views
1

我已經聲明的處理程序將處理SQLEXCEPTION,在清理代碼我曾經有過做SELECT 'My Handle';,我跑了失敗,因爲一個主鍵衝突的腳本,它的工作的原因我得到了我的輸出。我怎麼輸出一個SQL錯誤在MySQL

DECLARE ... HANDLE FOR SQLEXCEPTION的問題是,當有錯誤,它將運行,雖然它並沒有說什麼錯誤引發的,所以我想輸出的錯誤

我怎麼輸出使用的是MySQL的SQL錯誤查詢,我不在乎,如果我只能輸出錯誤代碼/ ID我只需要輸出一些東西給我一個指示什麼是錯誤,所以我可以修復這個問題

編輯:如果它不是很明顯,這個代碼是在SQL過程

回答

1

沒有什麼的DECLARE HANDLER文檔中對這個福nctionality。您可以處理MySQL返回到您的應用程序的錯誤,並以這種方式打印或記錄它們。

+0

該應用程序是運行存儲過程我想但處理程序中的服務器上的自動化作業,雖然我可以找到大量關於在C或PHP中輸出SQL錯誤的文檔問題是我使用無他們更不用說,我是在表中記錄錯誤,以便在週末如果失敗,我可以檢查出原來的錯誤是什麼,如果錯誤改變多個失敗(已發生,花了一整天只是爲了弄清楚) –

+0

另外,我應該注意,你提供的鏈接我已經準備好了,唯一的例子是接近處理停止查詢的錯誤(因爲其他例子處理警告)是第一個,它是一個可怕的例子,因爲它有效地忽略了沒有任何錯誤指示的錯誤並繼續,這個例子應該證明'CONTINUE'是如何執行它的清理代碼,然後繼續使用原始查詢,但作爲基本示例,它與W3School內聯,表示使用從HTML表單直接輸入到查詢中而沒有數據衛生 –

0

實際上我並沒有使用任何手柄,但我想你可以讓你的代碼到一個存儲過程,然後運行該存儲過程!你可能會發現MySQL接受你正在嘗試做的事情。