PHP - MYSQL试图存储Integer值

时间:2011-03-03 14:54:26

标签: php mysql

当我尝试执行此操作时,AND收到以下错误:

Error: Incorrect integer value: 'Age' for column 'age' at row 1

MYSQL - >我创建了一个数据库abc里面创建了一个名为ee的表,在表中我创建了一个字段“age”,类型 - “INT”,长度 - 10,默认 - NULL

有一个人可以帮助我为什么会这样做错误 - 错误的整数值:第1行第'年龄'列的'年龄'

<html>
    <body>
        <form action="test5.php" method="post">
            Age: <input type="text" name="age" />
            <input type="submit" />
        </form>
    </body>
</html> 

test5.php(页)

$Age= $_POST[ age ] ;

echo $age;

$con = mysql_connect("localhost","root","***");
if( !$con )
{
    die('Could not connect: ' . mysql_error());
}

mysql_select_db("abc", $con);
$sql = "INSERT INTO ee (Age) VALUES ('Age')";

if( !mysql_query( $sql, $con ) )
{
    die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)

2 个答案:

答案 0 :(得分:4)

您正在插入“年龄”字样,而不是变量$ age
你还应该来清理这个变量。

$age = intval($_POST['age']);
echo $age;

$con = mysql_connect("localhost","root","vvvrks"); 
mysql_select_db("abc", $con);

$sql = "INSERT INTO ee (Age) VALUES ('$age')";
mysql_query($sql,$con) or trigger_error(mysql_error()." ".$sql);
echo "1 record added";

答案 1 :(得分:0)

如果您想将用户年龄存储为整数,则应更改查询:

$sql="INSERT INTO ee (Age) VALUES ('Age')";

$Age = (int)$_POST['Age'];

$sql="INSERT INTO ee (Age) VALUES ($Age)"; 

*注意字符串强制转换,您应该始终过滤这些值以防止sql-injection

错误消息本身:

Mysql告诉你它无法在integeter字段中存储字符串“Age”。您想要存储变量$ Age

的内容