valeur PHP ne dépassera pas 127
Question
Voici une partie du code sur mon formulaire:
<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
et voici mon code 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());
}
}
mais je regardais ma base de données et il semble seulement obtenir à 127, alors $ pays est toujours 127
La solution
Si le champ « pays » est défini comme signé tinyint la valeur maximale est 127.
voir http://dev.mysql.com/doc/refman /5.0/en/numeric-types.html
edit: même si votre serveur MySQL vous permet d'insérer des données qui est hors de portée, vous pouvez obtenir des informations sur la troncature, par exemple avec
SHOW WARNINGS
which serait résultat quelque chose like"Level";"Code";"Message" "Warning";"1264";"Out of range value for column 'i' at row 1"Vous pouvez également mettre le serveur en mode strict et obtenir une erreur si les données est hors de portée.
voir http://dev.mysql.com/doc /refman/5.0/en/server-sql-mode.html
Autres conseils
S'il vous plaît vérifier votre pays type de colonne de données. Si cette colonne est tinyint, vérifier si elle est « non signé ».
Signé tinyint sont constrainted à -127/127
Nous aurions besoin de voir vos instructions DDL-SQL pour être en mesure de résoudre celui-ci. La cause la plus probable est que vous avez un type de données avec une trop petite plage dans votre base de données pour être en mesure de traiter un plus grand nombre de 127.
Exécutez l'instruction suivante:
SHOW CREATE TABLE sites_countries;
Publier les résultats ici.