2015-04-20 61 views
0

如果我有一個表,其中一些varchar列,其長度顯然會受到限制,那麼只要插入太大的值失敗,我就必須在前端顯示。例如,如果name列的限制爲20,但有人輸入的名稱長度爲30個字符,則應通知他們有關錯誤。查詢後數據是否被截斷?

當應用程序變大時,這會變得非常繁重。

我想讓生活變得更輕鬆,並且跳過照顧用戶旅程中每一步的個人限制,就是繼續進行應用程序的正常運作,但向他們顯示警告他們的數據沒有被整體保存,因爲它太長了。因此,如果MySQL提供了一些方法,可以讓我詢問是否全部保存了所有數據,或者某些strings由於它們各自的varchar字段較短(或者可能是我可以檢查的MySQLi對象的屬性)而被截斷,那麼我在數據庫中保存數據的主要方法總是可以檢查在執行了任何insertsupdates之後,只需在下一頁加載時發出警告。

MySQL(或MySQLi)是否提供這樣的功能?

回答

0

當然可以。當數據被截斷時,MySQL會引發警告。

您可以檢查是通過檢查@@warning_count

SELECT @@warning_count; 

或者

SHOW COUNT(*) WARNINGS; 

要檢查什麼警告已發生發生任何警告:

SHOW WARNINGS [LIMIT [offset,] row_count] 

更多信息: http://dev.mysql.com/doc/refman/5.0/en/show-warnings.html