質問
ここに私のフォーム上のコードの一部です:
<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"また、strictモードでサーバーを配置し、任意のデータが範囲外の場合はエラーを取得することができます。
http://dev.mysql.com/doc見ます/refman/5.0/en/server-sql-mode.html の
他のヒント
あなたの国のデータ列の種類を確認してください。 この列がtinyint型であれば、それは「符号なし」の場合は、チェックします。
署名付きTINYINTは-127/127に制約下されている。
http://dev.mysql.com/doc /refman/5.0/en/numeric-types.htmlする
私たちは、これを解決することができるようにあなたのSQL DDL-文を参照してくださいする必要があります。最も可能性の高い原因は、あなたが127よりも大きな数字を扱うことができるようにするため、データベース内の、あまりにも小さい範囲でデータ型を持っているということです。
次の文を実行します:
SHOW CREATE TABLE sites_countries;
ここで結果を投稿します。
所属していません StackOverflow