2015-02-24 56 views
-1

我是新來的PHP,我自學自己,因爲我需要。現在,我無法將日期插入數據庫。如何正確地將日期插入到數據庫中?我檢查了我的數據庫,但日期字段只有零。如果有人能幫我解決我的問題,我將不勝感激。這是我的代碼。在PHP中插入/更新日期

<?php 
if(isset($_POST['submit'])){                
    $fn=$_POST['firstname']; 
    $mi=$_POST['mi']; 
    $ln=$_POST['lastname']; 
    $dn=$_POST['nname']; 
    $age=$_POST['age']; 
    $bio=$_POST['about']; 
    $bday=$_POST['date']; 
    $gnd=$_POST['gender']; 
    $loct=$_POST['loc']; 
    $query = mysql_query("UPDATE user 
         SET firstname='$fn', 
          minitial='$mi', 
          displayName='$dn', 
          age='$age', 
          lastname='$ln', 
          bio='$bio', 
          location='$loct', 
          birthdate='$bday' 
         WHERE username='$user'"); 
} 
?> 
+1

將日期轉換爲Y-m-d格式並存儲到數據庫中。 – 2015-02-24 10:07:19

+0

所以問題是什麼? – student 2015-02-24 10:07:56

+0

首先不要做那樣的查詢。使用語句準備和使用[PDO準備語句](http://docs.php.net/pdo.prepared-statements)進行綁定。 – Cunning 2015-02-24 10:10:14

回答

0

使用此代碼

$fn=$_POST['firstname']; 
$mi=$_POST['mi']; 
$ln=$_POST['lastname']; 
$dn=$_POST['nname']; 
$age=$_POST['age']; 
$bio=$_POST['about']; 
$bday=date("Y-m-d", strtotime($_POST['date'])); 
$gnd=$_POST['gender']; 
$loct=$_POST['loc']; 
$query = mysql_query("UPDATE user SET firstname='$fn', minitial='$mi', displayName='$dn', age='$age', lastname='$ln', bio='$bio', location='$loct', birthdate='$bday' WHERE username='$user'"); 

mysql_query得到了棄用的PHP5.5所以你必須避免使用它,直接查詢。對於真實世界的應用程序和實時項目,您必須使用PDO(PHP數據對象)來避免sql injection

+1

如果您想避免SQL注入,請不要這樣做!使用PDO準備的語句或至少逃避插入所有變量 – 2015-02-24 10:16:21

+0

我同意你的意見,但提問者這一行'我是一個PHP的新手,我自學自己'讓我以這種方式回答它 – 2015-02-24 10:17:23

+1

@yiiframe可怕的藉口。始終教導和傳播更好的方法。學習一種更好的開始方式比擺脫壞習慣更容易。 – 2015-02-24 10:18:09