2015-07-21 70 views
0

我正在開發一個使用MySQL和PHP的Web應用程序。有些用戶將會是中國人,所以我需要用中文字符來測試我的程序。由於中文字符比通常的ASCII字符長,所以發生MySQL字段可能比中文字符串短。MySQL字段長的中文字符串

我試圖限制lenth在輸入比MySQL的場較小兩次,如下面的例子:

<input name='field_name' maxlength='5'> in HTML 
field_name VARCHAR(10) in MySQL (all my field are encoded with utf8_unicode_ci) 

儘管如此,字符串「好好好好好「具有5個字符將被截斷。

這是一個重要的問題,因爲截斷字符串以符號「 」結尾,jQuery ajax調用(json)拒絕錯誤。

這就是爲什麼我想知道如何在客戶端和服務器端確保這些輸入的安全,以便在任何情況下都不會影響數據的完整性(或者至少在被截斷時顯示)。

謝謝!

+0

'SUBSTR()'FIELD_NAME時響應Ajax調用。 (更好地改變mysql中的fileld_name,varchar 10太小) – jsxqf

+0

感謝您的回答,但它不起作用..無論如何,正如你所說,我會增加我的數據庫字段的大小 – Pierre

回答

1

爲英文字符, 但UTF-8使用了三個字符的UTF-8使用一個字符爲中國文字

+0

非常感謝您的答案。所以如果我明白你的觀點,適當的情況是確保數據庫字段比相關輸入的最大長度大3倍。謝謝! – Pierre