2012-10-25 44 views
0

我目前有一個表單,要求在單獨的下拉菜單中分別輸入這些表單。合併出生日期的字段以保存到分區

天|月|年

當我插入到數據庫中時,我執行以下操作,但它插入的所有內容都是00-00-0000。

$_POST['date'] = $_POST['dob_day'].'-'.$_POST['dob_month'].'-'.$_POST['dob_year']; 

//I then do my insert and I'm inserting this.. 

mysql_real_escape_string($_POST['date']) 

什麼似乎是問題?

+0

你是否從網頁返回實際的數字/數字字符串? –

+0

你的代碼對SQL注入非常有用。請先解決這個問題。看到[這裏](http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php) –

+0

我真的沒有檢查,但其他數據的每一點都過來了,存儲到數據庫的罰款,所以我會認爲它是.. – Dave

回答

2
  1. 不要指定什麼$ _ POST,這是超級不好的做法。
  2. mySQL中的日期格式應爲YYYY-MM-DD

$date = $_POST['dob_year'] . '-' . $_POST['dob_month'] . '-' . $_POST['dob_day'];

+0

輝煌的皮卡 - 完全錯過了#2!試圖接受答案,但必須等待7分鐘:) – Dave

+0

你是對的:'不要給$ _POST分配任何東西,這是非常糟糕的做法.'因此,請不要提供代碼如何使用它。 –

+2

@juergend你在做什麼? – Sammitch

0

您正在將數據分配給不正確的POST。

$date = $_POST['dob_day'].'-'.$_POST['dob_month'].'-'.$_POST['dob_year'];

然後插入$date

+0

沒有問題分配給POST,你仍然可以像平常一樣使用它,據我所知。 – dfsq

+0

感謝David Nguyen--只是MySQL格式是yyyy-mm-dd,我完全忘了!謝謝 – Dave

0

如果你的價值觀是在此之後空的,你沒有正確使用POST。爲了使它更具可讀性,我將它改了一點:

$day = $_POST['dob_day']; 
$month = $_POST['dob_month']; 
$year = $_POST['dob_year']; 

$date = $day . '/' . $month . '/' . $year; 
$insert = "INSERT INTO table('dob') VALUES('$date')"; 
// then run $insert 
+0

Thanks burmat :) – Dave

+0

早已接受,謝謝! – Dave

相關問題