这是我的表格上的代码的一部分:

<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

有帮助吗?

解决方案

如果字段“国”被定义为一个TINYINT最大值签署为127,点击 看到 http://dev.mysql.com/doc/refman /5.0/en/numeric-types.html

编辑:即使你的MySQL服务器允许你插入的数据是超出范围,你可以获取截断,例如信息与

SHOW WARNINGS
which将导致一些like
"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

其他提示

请检查你的国家的数据列类型。 如果此列TINYINT,检查它是否是“无符号”

签名TINYINT被constrainted到-127/127

http://dev.mysql.com/doc /refman/5.0/en/numeric-types.html

我们需要看到您的SQL DDL语句才能够解决这个问题之一。最可能的原因是,你有过小范围的数据类型在数据库中能够处理更大的数字超过127个。

执行以下语句:

SHOW CREATE TABLE sites_countries;

在这里发表的结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top