2009-05-23 48 views
2

這裏是我的表上的部分代碼:PHP價值將不超過127

<br><input type="checkbox" checked="yes" name="country[]" value="1" />Asia/Pacific Region 
<br><input type="checkbox" checked="yes" name="country[]" value="2" />Europe 
<br><input type="checkbox" checked="yes" name="country[]" value="3" />Andorra 
... 
<br><input type="checkbox" checked="yes" name="country[]" value="250" />Jersey 
<br><input type="checkbox" checked="yes" name="country[]" value="251" />Saint Barthelemy 
<br><input type="checkbox" checked="yes" name="country[]" value="252" />Saint Martin 

,這是我的PHP代碼:

$country=$_POST['country']; 
... 
foreach ($country as $country) { 
    $sql="INSERT INTO sites_countries (siteID, country) VALUES ('$id', '$country')"; 
    # execute SQL command 
    if (!mysql_query($sql,$con)) { 
     die('Error: ' . mysql_error()); 
    } 
} 

,但我看了看我的數據庫,它似乎只得到127,那麼$國家總是127

回答

6

如果字段「國家」被定義爲TINYINT最大值籤的是127
看到http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

編輯:即使您的MySQL服務器允許您插入超出範圍的數據,您也可以獲得有關截斷的信息,例如,與

SHOW WARNINGS
這將導致類似
"Level";"Code";"Message" 
"Warning";"1264";"Out of range value for column 'i' at row 1"
您也可以將服務器置於嚴格模式,並在出現任何數據超出範圍時收到錯誤。
請參閱 http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html

+0

那麼我該如何改變它? – Hintswen 2009-05-23 11:06:14

3

我們需要看到您的SQL DDL語句才能夠解決這個問題之一。最可能的原因是,你有過小範圍的數據類型在數據庫中能夠處理超過127

更大的數字執行以下語句:

SHOW CREATE TABLE sites_countries; 

這裏後的結果。