2011-03-03 46 views
0

當我嘗試執行,這是和得到以下錯誤:PHP - MYSQL嘗試存儲整數值

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

MYSQL - >我創建了一個數據庫ABC內部創建一個表名EE並在表中我創建了一個字段「年齡」,類型 - 「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) 
+0

無論問題如何,請嘗試應用一些輸入驗證,您的代碼可以SQL調用注入。 – 2011-03-03 15:00:30

回答

4

你將單詞 「年齡」,而不是變量$年齡
你也應該消毒這個變量。

$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"; 
0

如果要存儲用戶年齡作爲一個整數,你應該改變你的查詢:

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

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

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

*注意字符串轉換,你應該總是過濾那些預防的值sql-injection

錯誤消息本身:

Mysql告訴你它不能在字符串中存儲字符串「Age」。你想存儲變量的內容$ Age

+0

請重寫爲: $ sql = sprintf('INSERT INTO ee(Age)VALUES(%d)',$ Age); – 2011-03-03 15:03:01