Pregunta

Esto es parte del código en mi formulario:

<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

y este es mi código 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());
    }
}

, pero miré a mi base de datos y parece que sólo para llegar a 127, entonces $ país es siempre 127

¿Fue útil?

Solución

Si el campo "país" se define como un tinyint firmado el valor máximo es 127.
ver http://dev.mysql.com/doc/refman /5.0/en/numeric-types.html

editar: incluso si su servidor MySQL le permite insertar datos que está fuera de rango se puede obtener información sobre el truncamiento, por ejemplo, con

SHOW WARNINGS
which resultaría en algo like
"Level";"Code";"Message"
"Warning";"1264";"Out of range value for column 'i' at row 1"
También se puede poner el servidor en modo estricto y obtener un error si hay datos fuera de rango.
ver http://dev.mysql.com/doc /refman/5.0/en/server-sql-mode.html

Otros consejos

Por favor, compruebe su país tipo de columna de datos. Si esta columna es tinyint, comprobar si es "sin firmar".

tinyint firmados son constrainted a -127 / 127

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

Habría que ver sus DDL-sentencias SQL para ser capaz de resolver este caso. La causa más probable es que usted tiene un tipo de datos con un rango muy pequeño en su base de datos para ser capaz de manejar un número mayor que 127.

Ejecutar la siguiente declaración:

SHOW CREATE TABLE sites_countries;

Publicación de los resultados aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top