2011-03-22 91 views
2

所以,我試圖在數據庫中插入數據。我可以讓所有的東西都可以工作,除了出生的那一天,這應該來自一個選擇/選項形式的POST。我從這裏得到了一個答案,我被告知要檢查變量的值並將數據庫字段更改爲日期。我已經完成了測試,並且數據類型已經是日期,但是當我嘗試插入數據庫時​​仍然會獲得所有的O.有人對我仍然缺少的東西有所瞭解嗎?phpmyadmin插入DOB

$dob = $_POST['year'] . '-' . $_POST['month'] . '-' .$_POST['day']; 

echo $dob; shows the value of the val like 1977 12 12 

$insert = " INSERT INTO `vergilioDB`.`vergilioDB` (dob) VALUES ($dob)"; 

我不想問這個問題,但我無法找到解決辦法...... 非常感謝你!

+0

當有人給你,你必須接受它的正確答案中的變量。請接受Mark的回答。 – 2011-03-22 21:01:15

回答

4

您需要引用值,否則您的值將被解釋爲算術表達式而不是包含日期的字符串。

$sql = "INSERT INTO vergilioDB.vergilioDB (dob) VALUES ('$dob')"; 

你也應該保護自己免受SQL注入 - 你的代碼是不安全的。

例如,您可以考慮使用intval以確保用戶輸入的字符串是整數。或者,您可以考慮使用PDO並準備好語句。

+0

工作!非常感謝!!!並感謝您的提示:) – Karl 2011-03-22 20:59:36

1

你必須把報價

VALUES ('$dob')"; 
+0

工作!非常感謝!!! :) – Karl 2011-03-22 21:00:13