Вопрос

Вот часть кода моей формы:

<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, тогда $country всегда равна 127

Это было полезно?

Решение

Если поле «страна» определено как крошечное целое число со знаком, максимальное значение равно 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

Другие советы

Проверьте тип столбца данных вашей страны.Если этот столбец имеет тип tinyint, проверьте, является ли он «беззнаковым».

Подписанные tinyint ограничены значениями -127/127.

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

Нам нужно будет увидеть ваши DDL-операторы SQL, чтобы решить эту проблему.Наиболее вероятная причина заключается в том, что в вашей базе данных имеется тип данных со слишком маленьким диапазоном, чтобы можно было обрабатывать числа больше 127.

Выполните следующее утверждение:

SHOW CREATE TABLE sites_countries;

Опубликуйте результаты здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top